【问题标题】:Using Postman to get next iteration使用 Postman 进行下一次迭代
【发布时间】:2018-03-27 18:45:33
【问题描述】:

我正在使用 Postman 从 Web 服务中获取结果。

Web 服务将结果分成 50 个块,前一个 JSON 中的下一个请求 URL 返回如下:

{
    "type": "user.list",
    "pages": {
        "type": "pages",
        "next": "https://api.webservice.io/users?per_page=50&page=2",
        "page": 1,
        "per_page": 50,
        "total_pages": 2721
    },
...

有没有一种方法可以自动请求下一页,直到获得所有结果?

【问题讨论】:

    标签: curl postman


    【解决方案1】:

    是的。

    您可以在响应中解析next,并将next 的值设置为postman.setNextRequest('<next url>')

    例如 - 在您的测试部分添加此代码

    try {
      var userList = JSON.parse(responseBody);
    
      // Do whatever you have to do with the response 
      // Check if userList.pages.next is valid string 
      // If valid do
    
      postman.setNextRequest(userList.pages.next);
    
    } catch (e) {
      console.log('Error parsing JSON', e);
      postman.setNextRequest(null);
    }
    

    参考 - Conditional Workflows in Postman

    【讨论】:

    • 您能否添加一些有关其工作原理的信息。我已经尝试过了,但即使我知道有一个有效的下一页值,邮递员也会返回 setNextRequest is not defined 错误。
    • 它是postman.setNextRequest。您可以查看链接的参考以了解详细信息。
    • 虽然这可行(我可以通过加载时间加倍来确认),但我在响应中看不到额外的结果。另外,我该如何链接它,以便它可以获取所有下一页,而不仅仅是第二次迭代。
    • console.log 语句添加到您的测试脚本以记录您解析的next url。 setNextRequest 递归调用同一个请求,所以如果它只运行两次,那就意味着只有两个页面。您可以通过View->Show Postman Console 打开并查看View->Devtools
    • 我在任何地方都找不到 Show Postman ConsoleDevtools 选项。 JSON 返回有超过 2700 页,我知道这一点是因为我手动请求了第 1-5 页。
    猜你喜欢
    • 2014-06-30
    • 1970-01-01
    • 2020-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    • 2021-01-06
    相关资源
    最近更新 更多