【问题标题】:Postman request chaining邮递员请求链接
【发布时间】:2017-09-06 04:42:49
【问题描述】:

我想在我的 CI 环境中运行 postman 测试。现在,在调用端点之前,我需要调用我们的 oauth 端点之一,以确保我拥有访问令牌。在邮递员上,有 2 岁的 ticket 有大量的赞成票和建议在预请求中使用 setNextRequest(显然,邮递员 4.5 支持)。因此,我的预请求部分中有以下内容:

var responseBody = postman.setNextRequest("/oauth/token");

它不起作用,似乎从未调用过“/oauth/token”(没有出现在邮递员控制台中)。我确信我不是第一个反对这种情况的人,所以我的问题 - 有没有办法从集合中调用一个项目(给我访问令牌的那个)?也就是说,我不想在每次需要所述访问令牌的测试之前重复相同的 oauth 请求。

【问题讨论】:

    标签: javascript postman newman


    【解决方案1】:

    postman.setNextRequest() 用于在当前请求之后执行所需的请求。这不会解决你的问题。最好的方法是将其存储在环境变量中 postman.setEnvironmentVariable() 函数并在需要时调用。

    【讨论】:

    • 是的,这也是我的直觉。但是为什么邮递员说预请求支持 setNextRequest 呢?这里有什么用例?
    【解决方案2】:

    我可以看到您在预请求部分使用responseBody。尽管您只是想将其设置为下一个请求。 responseBody 在那里不可用。 responseBody 仅在 Tests 部分可用(显然是由于请求已被执行)。

    关于你的场景,你为什么不跟随:

    1. 在第一次调用时执行您的身份验证请求
    2. 获取访问令牌
    3. 将其存储在环境变量中
    4. 在您需要的后续请求中使用该令牌。

    这将确保您的所有请求都在运行时生成访问令牌。

    【讨论】:

    • 是的,所以这是我的默认策略。我虽然可能有一种更优雅的方式来做到这一点,比如以某种方式执行来自另一个集合的请求会给我更多的灵活性来构建我的测试。
    • 目前postman.setNextRequest 方法只在同一个集合中查找请求。
    猜你喜欢
    • 2017-06-17
    • 1970-01-01
    • 2020-05-22
    • 2017-02-25
    • 2017-12-30
    • 2021-07-01
    • 2018-07-22
    • 2020-07-23
    • 1970-01-01
    相关资源
    最近更新 更多