Postman进阶篇(六)-接口自动化测试(Collection Runner运行集合)

  • 要想搭建一个接口自动化测试的框架至少要满足两个条件:
    1. 能够批量发送接口请求
    2. 能够拿到接口请求,并自动断言返回结果是否通过测试用例
  • 在专栏的前几篇介绍过“使用test脚本进行返回结果断言”,本篇文章就来介绍在postman中使用“Collection Runner”批量发送接口请求。
    (test 脚本介绍:Test script入门及校验接口返回值

一、Collection Runner使用方法

  • “Collection Runner”是postman中批量运行接口集合的一个工具,支持以指定的顺序运行接口合集,并且记录请求测试结果。

1. 打开方式

  • 共有三个位置可以打开“Collection Runner”
  1. 点击接口集合的“···”(更多)按钮,选择“Run collection”
    在这里插入图片描述
    • 从这个入口打开Runner页面,默认会显示该接口集合下的所有接口。在这里插入图片描述
  2. 点击postman的界面底部按钮“Runner”
    在这里插入图片描述
    • 从这个入口打开Runner页面,需要手动再选择接口。
      在这里插入图片描述
  3. 在集合的编辑页面,点击“Run”按钮
    在这里插入图片描述
    • 从这个入口打开Runner页面,也会显示该接口集合下的所有接口。
      在这里插入图片描述

2. 运行前配置

  • 在自动化运行脚本前可进行一些配置,具体可配置项如下图。
    在这里插入图片描述
  • 这里特别说明一下接口请求顺序:
    • 默认情况下,请求将按照它们在集合中列出的顺序运行
    • 但如果需要更改执行顺序,可以单击每个请求的左侧并拖动以移动它。
    • 还可以通过取消选中其框来取消选择单个请求。
    • 或者可以在Test脚本内内置函数postman.setNextRequest()来修改运行顺序。
      (postman.setNextRequest():顾名思义,此函数允许为接口指定接下来运行哪个请求。)
  • 在我写这篇文章的过程中,postman更新了一个新版本(Version 9.31.3),在Runner配置页面多了一个配置——“Choose how to run your collection”(选择如何运行你的集合)
    • 这个配置默认选中,即运行方式为“Run manually” (在runner中运行这个集合)
    • 从每个入口进入都会看到这个配置,对Runner的运行没有影响。
      在这里插入图片描述

3. 运行及结果查看

  • 点击“Run test”
    在这里插入图片描述
  • Postman实时显示请求执行和测试结果。在右侧显示每次运行的数字,单击以选择其中的一次运行结果。界面显示每个请求的概述,单击请求名称会显示有关执行的更多数据。
    在这里插入图片描述
  • 使用右上角的按钮查看运行摘要,摘要页面集合运行的每次迭代列出一列,可以一目了然地查看整个运行的测试输出。
    在这里插入图片描述
    在这里插入图片描述
  • 测试结果也支持导出,导出的文件为JSON格式。
  • 导出之后的文件无法重新导入postman。
    在这里插入图片描述
    在这里插入图片描述

二、批量设置断言

1. 集合(collection)、文件夹(folder)批量配置脚本

  • Test Script和Pre-request Script不仅可以配置在一个接口下,同时可以配置在接口集合或文件夹下。
  • 这样配置之后,集合或文件夹下所有的接口在请求时都将运行脚本。
  • 集合(collection)脚本配置位置:
    在这里插入图片描述
  • 文件夹(folder)脚本配置位置:
    在这里插入图片描述
  • 脚本运行的顺序如下:
    • 运行collection的“pre- request script” =>
    • 运行folder的“pre- request script” =>
    • 运行单个接口内的“pre- request script” =>
    • 发送接口请求 =>
    • 接收接口返回结果 =>
    • 运行collection的“test script” =>
    • 运行folder的“test script” =>
    • 运行单个接口内的“test script”
      在这里插入图片描述

2. 示例:批量校验接口返回状态码

  • 在待测的接口合集下配置test脚本
    在这里插入图片描述
  • test脚本的内容如下:
    pm.test("校验接口返回状态码为200", function () {
          
          
        pm.response.to.have.status(200);
    });
    
  • 设置好之后批量运行集合接口
    在这里插入图片描述
  • 运行结果页会显示测试的结果
    在这里插入图片描述

3. 示例:随机生成请求参数并在返回结果中校验

获取热搜词
URL:https://silkroad.csdn.net/api/v2/assemble/list/channel/search_hot_word?new_hot_flag=1&channel_name=pc_hot_word&size=4&platform=pc

  • 请求参数中,查询参数“size”与返回结果中的“items”列表长度相对应。
    在这里插入图片描述
  • 脚本思路:使用pre-request script随机生成0-9的整数,赋值给接口URL的查询参数“size”。使用Test script校验返回结果中的“items”是否与查询参数“size”设置的值一致。脚本设置完成后,Collection Runner运行十次接口。
  • pre-request script脚本:
var test = parseInt(Math.random()*9);
// 脚本是直接添加一个size的参数,所以如果运行脚本的话,要把URL参数中的“size”删除
pm.request.url.query.add({
    
    'key':'size','value':test.toString()})
  • Test script脚本:
pm.test("请求中随机生成size,校验返回结果中items长度是否符合size", function () {
    
    
    var size = pm.request.url.query.get("size"); //获取size的value
    var items_len = pm.response.json()["data"]["items"].length.toString() //获取items的长度
    pm.expect(items_len).to.eql(size); // size值应该等于items的长度
});
  • 设置Runner,运行次数为10:
    在这里插入图片描述
  • 运行结果:
    在这里插入图片描述
  • 这样就完成了随机生成请求参数并在返回结果中校验。
  • 大家也可以尝试一下,这个接口是个GET请求,只需要填写URL就可以了

三、最后

  • Collection Runner的存在,使得postman可以做为一个接口自动化测试的工具,并且配合脚本的使用,可以处理复杂的接口接口请求参数设置,或是返回结果的断言。
  • 如果在日常工作中需要搭建一个接口自动化测试的框架,或是寻找一个自动化测试的工具,Postman的Collection Runner也不失为一种选择。

附录:postman系列文章目录

零基础入门接口功能测试教程-目录
—————————————————————————————————
postman系列文章内所使用的示例文件已经上传到了本人运营公众号【软件测试必备技能】
在这里插入图片描述
有需要可点击文章下发二维码,前往领取~
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_40883833/article/details/126800374