对于单个接口的测试不波及具体执行程序的问题。可是对于利用多个接口模仿一个业务场景的测试就会须要波及到执行程序的问题。
首先咱们须要晓得,个别状况下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/...