【问题标题】:Saving a Postman header value into a variable throughout requests in a collection在集合中的整个请求中将 Postman 标头值保存到变量中
【发布时间】:2017-07-11 09:08:17
【问题描述】:

我正在尝试在 Postman 中自动化我的测试套件,这样我就不必手动进入每个请求并将该标头值更改为我最初放入第一个请求中的值。

我的测试套件目前看起来像:

第一个请求:

var headerValue = postman.setGlobalVariable('Number', headerValue);
console.log("Number is: " + headerValue);

第二个请求头:

Number - {{headerValue}}

我希望 headerValue 具有“数字”的值,因为我已将其设置为全局变量,但它返回为未定义。我不确定我做错了什么。

【问题讨论】:

    标签: javascript automated-tests postman


    【解决方案1】:

    你可以这样做

    如果 Refresh_token 是标头值

    postman.setGlobalVariable("refresh_token",postman.getResponseHeader("Refresh_token") );
    

    官方文档:https://www.getpostman.com/docs/postman/scripts/test_examples

    【讨论】:

    • 此答案使用现已弃用的代码。你应该使用pm.globals.set("Number", pm.response.headers.get("Number"));
    【解决方案2】:

    似乎不再推荐@Sai 的回答不起作用,因为getResponseHeader 现在已被弃用。更新后的代码是:

    pm.test("First request", function() {
        let headerValue = pm.response.headers.get("Number")
        pm.globals.set("Number", headerValue);
    });
    

    在第二个请求转到Headers 部分,添加一个新的标头,其中Number 作为键,{{Number}} 作为值。

    【讨论】:

    • 从 Postmant 7.34.0 开始,这应该是被接受的答案 getResponseHeaderpm 对象上不存在。
    【解决方案3】:

    就像对 Rostyslav Druzhchenko 答案的补充一样。在 Postman Client 中,您可以直接在 Tests 选项卡中添加:

    【讨论】:

      【解决方案4】:

      不,试试这个方法。对于邮递员,如果您想设置环境或全局变量,只需以这种方式使用 (key,value) 模式-

      postman.setEnvironmentVariable(key,value) or   
      postman.setGlobalVariable(key,value) 
      

      最后使用 {{key}}

      var headerValue = ”your value goes here”;
      postman.setGlobalVariable('Number', headerValue);
      

      并在您的子后续请求标头上使用 {{Number}}

      【讨论】:

      • 目前在控制台中没有定义以这种方式获取“数字”
      • 有没有postman.getHeader方法或者类似的方法?我正在尝试在我的标头请求中获取标头的值,而不是在测试套件中对其进行硬编码
      • @jmcconnell postman.getResponseHeader("Content-Type"); //Note: the getResponseHeader() 方法返回标头值(如果存在)。更多关于这里的方法getpostman.com/docs/testing_examples
      【解决方案5】:

      在将标头保存到变量之前记录标头的简单方法:

      let authToken = postman.getResponseHeader("Authorization")
      console.log("auth header -> ", authToken)
      postman.setEnvironmentVariable("auth", authToken)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-08-06
        • 1970-01-01
        • 2021-11-04
        • 2022-10-25
        • 2019-12-13
        • 2020-09-13
        • 2019-07-26
        相关资源
        最近更新 更多