【问题标题】:Postman - execute the first request for the first iteration only with multiple requests * multiple iterationsPostman - 仅对多个请求执行第一次迭代的第一个请求 * 多次迭代
【发布时间】:2020-05-02 21:01:10
【问题描述】:

我得到一个邮递员集合,其中包含请求 A、B、C。当我运行多次迭代(例如 3 次迭代)时,我应该确保请求 A 仅在第一次迭代中执行,并且请求 B 和 C 在每次迭代中都执行,如下所示:

迭代 #0 - 请求 A

迭代 #0 - 请求 B

迭代 #0 - 请求 C

迭代 #1 - 请求 B

迭代 #1 - 请求 C

迭代 #2 - 请求 B

迭代 #2 - 请求 C

我在请求A的预请求中尝试了postman.setNextRequest(),但它不能跳过自己,它只对下一个请求生效。

我相信这种情况很常见,一个典型的例子是请求 A 生成一个长寿命令牌代码,该代码将被以下请求/迭代使用。

有人有想法吗?赞赏!

【问题讨论】:

    标签: postman postman-collection-runner


    【解决方案1】:
    1. 从集合中移除请求 A

    2. 在请求 B 的预请求中添加此部分

      如果(pm.info.iteration === 0){ pm.sendRequest({ 网址:'https://url', 方法:'POST', 标题:{ '内容类型':'应用程序/json', }, 身体: { 模式:'原始', 原始:JSON.stringify({ "a": "a_value" }) } }, 函数 (err, res) { postman.setEnvironmentVariable("mytoken", res.json().token); }); }

    【讨论】:

      【解决方案2】:

      您可以尝试以下解决方案,看看是否能解决您的问题。

      • 在请求 B 的 preRequest 脚本中创建该长寿命令牌或您想做的任何事情,并将该长寿命令牌保存在环境变量中,或者通常您可以在环境变量中放置一个标志,例如 request_A_ran_already。让该代码处于 if 条件下,该条件检查环境是否已创建长寿命令牌,如果是,则将跳过该流程。请记住将长寿令牌保存在环境/全局变量中。如果以后要基于它进行操作,则需要持久化它。

      让我知道这是否适合您,如果您对此有任何疑问,请发表评论。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-05-31
        • 1970-01-01
        • 2017-01-20
        • 2016-04-13
        • 1970-01-01
        • 2019-11-12
        • 2016-10-10
        • 1970-01-01
        相关资源
        最近更新 更多