注意:对于这个查询,我使用了一个简单的测试API,希望它能更好地理解我的查询。API的URL是https://jsonplaceholder.typicode.com/users。
我正在设置一个邮递员收藏,只有一个邮政请求,可打电话。在Postman脚本中,为了测试目的,我只参数化了4个字段。我使用一个csv文件作为测试数据,并进行了2次迭代,其中参数"run“的目的是告诉Postman是否应该执行迭代。
run,id,name,username,email
yes,11,Test One,testone,testone@test.com
no,12,Test Two,testtwo,testtwo@test.com我在线研究并看到命令postman.setNextRequest(null);作为停止迭代的命令。但是,当运行值为"no“时,迭代仍然运行API调用。
我不确定这是否是在运行期间跳过迭代的正确命令。如果没有,我可以问什么是正确的命令。
谢谢!
我在“先决条件”选项卡中添加了一个javascript代码,以获取"run“的参数值,并计算与迭代对应的API是否要执行。
var run = pm.iterationData.get("run");
console.log("run = " + run);
if (run == "no") {
console.log("Do NOT run iteration");
postman.setNextRequest(0);
}
else {
console.log("Run iteration");
}
console.log("Test Run!");预期: Post API请求调用将在迭代1中执行,因为run = yes,而在迭代2上不会执行,因为run = no。 实际:在迭代1和2中都调用了Post请求。而且,当我检查console.log时,字符串"Test“都被记录下来。
run = yes
Run iteration
Test Run!
POST https://jsonplaceholder.typicode.com/users
run = no
Do NOT run iteration
Test Run!
POST https://jsonplaceholder.typicode.com/users发布于 2020-09-09 09:25:51
postman.setNextRequest()总是在当前请求的末尾执行。这意味着,如果将此函数置于请求前或测试脚本中任何位置的其他代码块之前,这些代码块仍将执行。
有关更多详细信息,请参阅文档。
https://stackoverflow.com/questions/57666987
复制相似问题