如何通过数据文件跳过newman中的first/current请求?

How to skip first/current request in newman through data file?

我的 data.csv 文件中有一个名为 'value' 的列。当它的值为 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);
}

实际结果:

当值=1时,调用RequestId“1”。由于下一个请求被设置为空,RequestId“2”被跳过。这很好。

当值 = 2 时,预计不会调用 RequestId“1”。但它被称为!之后调用 RequestId "2"。

预期结果:

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

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

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

方法名称是 setNextRequest()

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

我的主张:

  • 删除无意义的收集脚本

  • 添加empty/neutral请求“0”

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

    if(valueFromData === 1) {
        postman.setNextRequest("1");
    }
    
    if(valueFromData === 2) {
        postman.setNextRequest("2");
    }
    
  • 在“1”组的测试脚本中:

    if(valueFromData === 1) {
        postman.setNextRequest(null); }
    
  • 删除“2”内的脚本,因为没有意义

这个解决方案不够优雅,但应该可行。