【问题标题】:Postman - How do I loop a request in another request's test script?Postman - 如何在另一个请求的测试脚本中循环请求?
【发布时间】:2018-06-14 08:03:27
【问题描述】:

我有一个返回数组的请求,感谢 StackOverflow,我想出了如何使数组中的每个对象成为自己的环境变量。现在我想在实例化变量的同一请求中为每个变量发出请求。这是我得到的:

var a = pm.response.json();

for (i = 0;i < a.sick_beats.length; i++){
    pm.environment.unset("Beat_" + (i+1));
    pm.environment.set("Beat_" + (i+1), a.sick_beats[i]);
    pm.sendRequest("Publish Beat");
}

它发送请求“发布节拍”,但将其用作 URL 而不是引用请求。

我想我的问题是如何引用请求名称而不是 URL,因为旧方法 postman.setNextRequest("Request_Name"); 不起作用。

【问题讨论】:

  • 你在 Collection Runner 中使用这个吗? setNextRequest 不适用于单个请求。
  • 这……很有意义。顺便说一句,我没有使用 Collection Runner。
  • 如果你能附上更多你所拥有的邮递员图片,我会给你一个更好的答案。此外,在您的代码中,pm.response.json() 的作用与 JSON.parse(responseBody) 相同。
  • 我希望我能,但我不能。我确实修复了你指出的那个错误,所以谢谢!
  • 根据您发布的内容,人们很难提出解决方案。查看 Postman 文档和博客了解更多信息。

标签: loops request postman


【解决方案1】:

这个 pm.* 函数不能以这种方式工作:

pm.sendRequest("Publish Beat")

查看来自 Postman 的 blog 的更多解释。

这是应用程序中snippets 的基本摘录。第一个参数是 URL。

pm.sendRequest("https://postman-echo.com/get", function (err, response) {
    console.log(response.json());
});

您可以使用 pm.setNextRequest('request_name') 创建工作流,但这仅适用于 Collection Runner,不适用于单个请求。您可以使用 URL 中的 {{Beat_1}} 变量添加一组请求并将它们链接在一起。

或者,您可以添加类似这样的内容,但它非常 hacky,并且不会像收集运行器那样一遍又一遍地发送请求:

var some_value = pm.environment.get('Beat_whatever')
pm.sendRequest(`https://your-super-secret-site.com/${some_value}`, (err, response) => {
    // This is just here so you can see the response
    console.log(response.json())
})

【讨论】:

    猜你喜欢
    • 2017-01-25
    • 1970-01-01
    • 2020-02-29
    • 1970-01-01
    • 2018-03-29
    • 2018-12-10
    • 1970-01-01
    • 1970-01-01
    • 2018-11-15
    相关资源
    最近更新 更多