乐趣区

关于postman:Postman-实用接口测试系列-8-控制执行的顺序

对于单个接口的测试不波及具体执行程序的问题。可是对于利用多个接口模仿一个业务场景的测试就会须要波及到执行程序的问题。

首先咱们须要晓得,个别状况下 postman 跑的程序就是依照 request 从上到下的程序。如果你想要扭转它的程序,则须要应用到 postman 的内置函数 postman.setNextRequest()

1.postman.setNextRequest() 根本应用

postman.setNextRequest(“request name”)

1.1 指定申请程序 request_A->request_C

则在 A 的脚本里(能够是 pre-request script,也能够是 test script)写入如下代码

postman.setNextRequest("request_C");
1.2 循环以后的申请 request_A
postman.setNextRequest("request_A");
1.3 进行工作流
postman.setNextRequest(null);

2.postman.setNextRequest() 注意事项

2.1 如果申请脚本里没有 postman.setNextRequest(),则会依照默认的从上到下的程序执行

2.2 postman.setNextRequest() 有作用范畴的,如果跑的是 collection,则它能够作用在整个 collection 范畴内,即便是同一个 collection 中的不同 folder 也能够相互跳。
如果跑的是 folder,则只能在这个 folder 范畴内,不能跨 folder。

2.3 postman.setNextRequest() 只会在本申请齐全执行完后才会执行的,它无论放在 pre-request script 或 test 中任何地位都不影响这个个性。

3. 具体应用例子

假如一个场景,你须要测试一个创立预约单的业务场景。你设计的接口逻辑如下。

  • 拜访 接口 1 判断以后车辆是否有预约
  • 如果没有预约则拜访 接口 2 创立预约
  • 如果有预约则拜访 接口 3 勾销预约,而后再拜访接口 2 创立预约

接口 1 -> 接口 2
接口 1 -> 接口 3 -> 接口 2

接口 1 的脚本如下:

var data = pm.response.json();

if (data[0].booked == false) {
    // 没有预约则跳到接口 2 创立预约
    postman.setNextRequest("接口 2")
}else{
    // 如果有预约则跳到接口 3 勾销预约
    postman.setNextRequest("接口 3")
}

接口 3 的脚本,则是指定到接口 2:

postman.setNextRequest("接口 2")

参考:
https://learning.postman.com/…

退出移动版