【问题标题】:Can Postman Variables be Passed Into Header?邮递员变量可以传递到标题中吗?
【发布时间】:2019-03-06 02:30:57
【问题描述】:

我正在尝试将几个 Postman 请求串在一起进行测试。

  1. 在第一个请求中,我将一个全局变量设置为 测试脚本

    tests['Status code is 200'] = (responseCode.code === 200);
      if (responseCode.code === 200) {
      try {
        let jwt = responseBody.replace(/"/g, '');
        pm.globals.set("jwt", jwt);
        console.log("Variable will be set to", jwt);
      }
      catch(e) {
        console.log(e);
      }
    }
    
  2. 在第二个请求中,我运行 预请求脚本 作为

    let jwt = pm.globals.get("jwt");
    

然后我尝试将它传递到标题中

在运行器中运行测试时是否可以将值传递到标头中?

Runner 中运行测试时,第二个请求因jwt 无效而失败,并且 Postman 文档仅显示将变量传递到 URL 的示例。

【问题讨论】:

  • 令牌响应请求是什么样的?不知道为什么在设置变量之前需要替换其中的任何一个。您还将较旧的测试语法与较新的 set 变量语法混合在一起 - 我建议重构您必须使用所有新的 pm. * 函数。

标签: testing automated-tests postman postman-collection-runner


【解决方案1】:

postman auth 中有报道。

  1. 验证获取 JWT(oken) - Token API 请求
  2. 添加测试以捕获令牌

    var jsonData = JSON.parse(responseBody);

    postman.setEnvironmentVariable("jwt", jsonData.token);

  3. 授权 > 类型 > 承载令牌

  4. 令牌:{{jwt}}
  5. 设置您的环境
  6. 选择环境
  7. 从 Collection Runner 对话框中选择 Keep variable values(如果您在命令行中运行它)

注意:我使用的是 6.3.0 版本。

【讨论】:

  • 我可以在使用全局变量从主编辑窗口运行时让它工作,但在使用 Runner 时会失败。有什么想法我可能做错了吗?
  • 您是否会在您的答案中添加必须选择 Environment 并从 Collection Runner 对话框中选择 Keep variable values 的内容?
  • @Matthew 我已将您的建议添加到答案中。如果我遗漏了什么,请查看并告诉我。谢谢。
猜你喜欢
  • 2019-03-28
  • 1970-01-01
  • 1970-01-01
  • 2018-06-18
  • 2016-07-18
  • 1970-01-01
  • 2019-03-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多