【问题标题】:Passing variable from response to header in JMETER将变量从响应传递到 JMETER 中的标头
【发布时间】:2021-03-08 06:25:59
【问题描述】:

响应正文中对 JSON 的第一个请求,如下所示:

{"data":{"userId":"USR-0000000000000001","accessToken":"TKN-05TS53MFRVK2QYH2HMLD3J25WMH8IH6E767W","refreshToken":"RTK-88TLRIYE4YVJMWH2H4G0UQK83DVCWODFLX4X","expiresIn":"2018-03-16 20:14:00","tokenType":"bearer"}

我使用 “正则表达式提取器”: regular expression

然后我将“授权”变量传递给标题,这一步我需要放入 accesstoken 以获取有关我的个人资料的信息: enter image description here

然后在结果树上向我显示此响应 enter image description here

并显示响应

"{"error":{"errorCode":1001,"errorMessage":"Authentication failed"}}"

我想要的是下一个请求可以成功读取访问令牌。如果这有什么问题,有人可以帮忙吗?

谢谢

【问题讨论】:

    标签: jmeter


    【解决方案1】:

    Json Exractor 也用于提取 json 共振值。下面的图像有助于从 json 中提取值。将其存储在变量中并用于标头请求。

    【讨论】:

    • 感谢您的推荐 :) 是的,看来我将使用 JSON 提取器而不是正则表达式提取器 :)
    【解决方案2】:

    您应该将创建的变量的名称放入正则表达式提取器。

    将正则表达式中的Authorization 替换为accessToken,因为它是您正在使用的所创建变量的名称

    【讨论】:

      【解决方案3】:
      1. 您需要将标头值更改为Bearer ${Authorization},根据RFC 6750,它应该以Bearer 开头,并且标头值可能区分大小写

      2. 当涉及到JSON 数据正则表达式时,使用JSON Extractor 而不是正则表达式提取器更有意义。您应该能够使用简单的JSON Path 查询来提取令牌值,例如:

        更多信息:API Testing With JMeter and the JSON Extractor

      【讨论】:

      • 感谢您的帮助和推荐 :) 是的,看来我将使用 JSON 提取器而不是正则表达式提取器 :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-24
      • 1970-01-01
      • 2021-12-18
      • 1970-01-01
      • 2014-02-23
      • 2013-11-18
      相关资源
      最近更新 更多