如何通过数据文件跳过纽曼的第一个/当前请求?

时间:2018-12-29 06:23:25

标签: postman newman

我的data.csv文件中有一列“值”。当其值为1时,我只想运行ID为“ 1”的请求(并跳过请求ID“ 2”),而为2时,应运行请求ID“ 2”(并跳过请求ID“ 1”)。

我已经尝试了以下方法:

集合请求前脚本:

var valueFromData = pm.iterationData.get("value");

if(valueFromData === 1) {
    postman.setNextRequest("1");
}

if(valueFromData === 2) {
    postman.setNextRequest("2");
}

请求“ 1”预请求脚本:

var valueFromData = pm.iterationData.get("value");

if(valueFromData === 1) {
    postman.setNextRequest(null);
}

if(valueFromData === 2) {
    postman.setNextRequest("2");
}

请求“ 2”个预请求脚本:

var valueFromData = pm.iterationData.get("value");

if(valueFromData === 1) {
    postman.setNextRequest(null);
}

if(valueFromData === 2) {
    postman.setNextRequest(null);
}

实际结果:

当value = 1时,调用RequestId“ 1”。由于下一个请求被设置为null,因此跳过了RequestId“ 2”。很好。

当value = 2时,不希望调用RequestId“ 1”。但这叫!之后会调用RequestId“ 2”。

预期结果:

当value = 1时,仅应调用RequestId“ 1”。应该跳过RequestId“ 2”

当value = 2时,仅应调用RequestId“ 2”。应该跳过RequestId“ 1”

简而言之,无论设置下一个请求,总是会调用第一个收集请求。我可以知道如何有条件地跳过第一个/当前请求吗?

1 个答案:

答案 0 :(得分:0)

方法名称为setNextRequest()

我总是在测试段中使用它来设置下一个请求,而不是在请求前段中设置当前请求。

我的主张

  • 将收集脚本删除为毫无意义的

  • 添加空/中性请求“ 0”

  • 在此处设置下一个请求:

    if(valueFromData === 1) {
        postman.setNextRequest("1");
    }
    
    if(valueFromData === 2) {
        postman.setNextRequest("2");
    }
    
  • 在设置为“ 1”的测试脚本中的
  • if(valueFromData === 1) {
        postman.setNextRequest(null); }
    
  • 将“ 2”中的脚本删除为毫无意义的

此解决方案不是优雅的,但应该可以使用。