接口接口测试

[PPJ_08] Postman批量执行 & 数据驱动

2018-10-07  本文已影响296人  Fighting_001

目录结构

一、批量执行
    【方式1】按Collection中的API自上而下顺序执行
        Step-1:测试集准备
        Step-2:进入Collection Runner界面
        Step-3:配置Collection Runner中的选项,开始批量执行
        Step-4:检查批量执行效果
    【方式2】在Tests中通过设置脚本控制API的执行顺序
二、数据驱动
        Step-1:数据文件&测试集准备
        Step-2:对测试集执行Run
        Step-3:配置Collection Runner选项
        Step-4:正式执行数据驱动测试,检查执行效果

一、批量执行

批量执行:若想要批量测试某个集合里面的所有API时,可使用Collection Runner运行每个API,达到批量执行的效果。同时,可进行环境变量(Environment)、选代次数(Iteration)、延迟时间(Delay)、响应日志(Log Response)等的设置。

【方式1】按Collection中的API自上而下顺序执行
Step-1:测试集准备

预先准备好测试集Postman_API_test作为执行的测试集,其内添加多个不同请求的API,如下:

Step-2:进入Collection Runner界面
Step-3:配置Collection Runner中的选项,开始批量执行

对Collection Runner界面中的选项配置完成后,点击【Run Postman_API_test】按钮

Step-4:检查批量执行效果

执行过程ing...

执行完成

【方式2】在Tests中通过设置脚本控制API的执行顺序

除了默认的自上而下执行顺序(未设置脚本控制),关于API的执行顺序调整,一种方式通过手动拖动左侧Collection中的API来排列顺序;另外一种方式是在API的Tests模块通过设置脚本来控制每个API其后执行的下一个API。

方式2的适用场景:
将需要第1个执行的API排放在Collection某个集合中的最上面位置,在该API中的Tests模块编写脚本,控制下一个(第2个)执行的API,再由第2个API的Tests中设置脚本控制第3个执行的API...依次按照设置的顺序执行(1-->2-->3-->...),达到在Collection中构建工作流的效果。

控制执行先后顺序的脚本格式:

postman.setNextRequest('下一个接口的名称');

如下,Execution集合中有4个请求(Rq_A、Rq_D、Rq_B、Rq_C)。
1)若不采用任何脚本控制执行顺序,则Run该集合API的执行先后顺序将会按照默认的自上而下顺序,即:Rq_A-->Rq_D-->Rq_B-->Rq_C

2)若采用脚本控制执行先后顺序,达到预期效果:Rq_A-->Rq_B-->Rq_C-->Rq_D
①Rq_A作为第1个执行的API放在该集合的最上面
②然后在Rq_A的Tests模块中填写脚本:

postman.setNextRequest('Rq_B');

③Rq_B的Tests中可写or可不写postman.setNextRequest('Rq_C');,因左侧Rq_B的位置下面正好是Rq_C
④Rq_C的Tests中填写脚本:

postman.setNextRequest('Rq_D');

⑤在最后一个执行的API的Tests中添加终止执行的脚本
实现当执行完成此API之后,即刻终止,否则可能会进入死循环重复执行(如:A-->B-->C-->D-->B-->C-->D-->B-->C-->D-->...)

postman.setNextRequest("null");

以上设置完成,记得保存设置。然后执行Run,效果如下:

二、数据驱动

数据驱动:当一个接口需要测试很多不同的参数组合时,若采用逐个修改参数值来测试的方式,则效率会比较低。此时,需要每次迭代执行传入不同的参数进行测试,通过导入外部数据文件进行参数化,即可实现大量数据的自动化执行。

Step-1:数据文件&测试集准备

数据文件:
文件名称:data.json
文件类型:applicaton/json
json数据内容:

[{
"uname": "test00001",
"pwd": "111111"
},{
"uname": "test00002",
"pwd": "222222"
},{
"uname": "test00003",
"pwd": "333333"
}]

测试集:
测试集名称:Data_Driver
请求URL:https://postman-echo.com/get?uname={{uname}}&pwd={{pwd}}
请求方式:GET
传递参数:uname,pwd

Step-2:对测试集执行Run
Step-3:配置Collection Runner选项

在正式执行测试之前,可点击Collection Runner界面上【Preview】按钮,预览检查所导入的data.json数据是否按照预期配置的进行迭代。
若符合预期,则开始执行;若与预期不符合,则需要重新修改配置,or排查所导入data.json数据的正确性,完全无误后再作执行。

Step-4:正式执行数据驱动测试,检查执行效果

点击Collection Runner界面上的【Run Data_Driver】按钮,正式开始执行测试

执行完成:包含3次迭代的执行结果

PS:
若以上执行结果中出现如下异常提示:
"An error occured while running this request. Open DevTools for more info."
"Data unavailable(Only data about the top 10 historical runs is stored)"

可参看此文:
[Postman] Data unavailable(Only data about the top 10 historical runs is stored)_解决方案

上一篇下一篇

猜你喜欢

热点阅读