postman接口执行顺序控制
Posted 测试人的自我提升
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了postman接口执行顺序控制相关的知识,希望对你有一定的参考价值。
接口执行顺序设置
方法1:在Run Collection中我们可以修改请求的执行顺序
如下图,这里将所有的接口放到一个Collection请求集合中, 我们可以直接拖动接口, 改变默认Collection的各接口执行顺序, 也可以选择不运行哪些请求.
方法2:通过postman.setNextRequest("要执行的接口名称");
来手动控制请求的跳转
除了在Run Collection时调整接口顺序外,我们还可以通过postman.setNextRequest("要执行的接口名称");
来手动控制请求的跳转,如下图, 新建一个Collection, 新增A, B, C, D,E5个请求, 在请求A的Tests脚本中添以下代码:
postman.setNextRequest("D");
这样A执行完下一个就是执行D请求,然后我们看下这5个请求在collection中的执行结果:
从上图我们可以看出, 实际执行collection过程,执行完A请求后跳过了请求B, C, 直接跳转到D请求.,D请求执行完成后继续执行后面的E请求,所以最终结果只执行了A,D,E三个请求
另外如果D请求在运行时未勾选, 则只会运行A请求,结果如下图
通常情况下,我们可以使用if判断来控制流程跳转, 比如, 通过判断A请求是否成功来分别跳转到D请求或B请求.
var jsonData = pm.response.json()
if(jsonData.code== \'0\')
{
postman.setNextRequest("D");
}
else
{
postman.setNextRequest("B");
}
同时,我们也可以在最后一个请求中使用postman.setNextRequest(), 跳转到前面的请求, 来完成一个循环, 比如在E请求使用postman.setNextRequest("A"), 这样就会无限循环的执行下去,
一般来说, 循环中一定要设置中止条件, 一般通过if判断是否执行postman.setNextRequest(”下一个请求“)来控制是否继续循环
if(globals["wd"] == "海贼王")
{
postman.setNextRequest("null");//是一个终止程序作用
}
tests["A接口执行"]=true;//输出A接口执行
接口B的Teses中编写脚本:
var str = (responseBody.match(new RegExp(\'<title>(.+?)</title>\')))[1];
tests["B接口执行"] = true;//输出B接口执行
postman.setGlobalVariable("wd",str);//把获取到的返回值存为全局变量wd
postman.setNextRequest("A接口");//下一个执行接口为A接口,A接口为接口A的名称
注:wd为接口B中的返回值,在接口B中将其定义成一个全局变量。接口A通过判断全局变量wd是否正确进而判断接口B是否执行。如果全局变量判断正确,将终止执行,否则执行接口B。
执行顺序控制只有在collection runner或Newman里才生效
以上是关于postman接口执行顺序控制的主要内容,如果未能解决你的问题,请参考以下文章
Postman高级玩法之Pre-request Script
Postman----打开postman console控制台,查看接口测试打印log