【问题标题】:How to trigger a request before sending another request using POSTMAN如何在使用 POSTMAN 发送另一个请求之前触发请求
【发布时间】:2021-01-29 01:32:20
【问题描述】:

我有两个请求(我们称它们为 R1 和 R2)。我可以从 POSTMAN 单独触发它们。但我的要求是,当R2被触发时,应该先自动触发R1,然后再触发R2。

请帮助我实现这一目标。

P.S:我在谷歌上搜索过这个问题,但没有提到如何从预请求脚本触发另一个请求。他们只是说你可以在预请求脚本中运行一些代码。

【问题讨论】:

    标签: api rest postman


    【解决方案1】:

    您可以使用pm.sendRequest 从预请求或测试脚本发送请求。

    预请求脚本

    pm.sendRequest({
        url: 'https://jsonplaceholder.typicode.com/todos/1',
        method: 'GET'    
    }, function (err, res) {
        console.log(res);
    });
    

    它会先发送 jsonplaceholder.typicode.com 请求,然后再发送实际请求。您可以改用您的请求。

    【讨论】:

    • 我在哪里可以在上面的代码中提供我的请求?
    • @MaruthiSrinivas,提供 url 代替 https://jsonplaceholder.typicode.com/todos/1,方法类型和数据(如果是 POST 请求)
    • @MaruthiSrinivas 这个和我的回答是一样的。不同之处在于,在我的回答中,您不是手动提供所有内容,而是从 r1 复制所有这些详细信息。
    • 我个人使用这种方法将一个请求与另一个请求隔离开来,这有助于我使用 newman 一次性测试所有 api。
    【解决方案2】:

    在R1的测试脚本中使用

    pm.environment.set("R1",pm.request)
    

    并且在 R2 的预先请求中

    pm.sendRequest(pm.environment.get("R1"))
    

    现在,当您发送 R2 时,将发送 R1

    【讨论】:

    • 如果 R1 和 R2 的 URL 不同,这会起作用吗??
    • 是的,环境变量 r1 将包含 r1 的所有详细信息,包括 url
    • 您可以通过转到邮递员控制台并检查请求是否发送来验证这一点
    • 试过上面的方案,发现环境变量R1是空的。第一次需要运行 R1 吗?
    • 是的,首先运行 R1 将 R1 的值设置为一次性操作
    【解决方案3】:

    如果您决定运行收集而不是手动触发 R2,那么您可以从收集如何执行请求中获得帮助:

    • Collection 按它们在 Postman 中出现的顺序运行请求。因此,您可以通过在集合中适当地安排它们来控制顺序
    • 如果集合具有文件夹,则集合首先在文件夹中执行请求,然后再在集合级别执行请求。同样,您可以根据需要将请求安排在文件夹中。

    参考:controlling request flow

    【讨论】:

      【解决方案4】:

      这就是我得到的解决方案。

      pm.environment.set('access_token', 'eyJraWQiOi6XVYuL...');
      
      pm.sendRequest({
          url: 'https://www.google.com/hello',
          method: 'POST',
          header: {
              'Content-Type': "application/json",
              'accept': "application/json",
              'Authorization': 'Bearer ' + pm.environment.get("access_token")
            },    
          body: {
              mode: 'raw',
              raw: JSON.stringify({ 
                   key1: "value2",
                   key2: "value1"
                  })
          }
      }, function (err, res) {
          console.log(res);
          const POSTResponse = res.json();
      });
      

      【讨论】:

        猜你喜欢
        • 2020-07-06
        • 2011-03-19
        • 1970-01-01
        • 1970-01-01
        • 2013-05-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多