如何从 Jmeter 中的序列化 json 响应中提取值

问题描述 投票:0回答:3

我收到以下 api 请求的序列化 json 格式的响应

{"Data":"{\"orderId\":null,\"Tokens\":{\"Key\":\"abcdefgh123456\",\"Txnid\":\"test_5950\"}","success":true,"Test":"success"}

我想提取 Jmeter 中的 Key 值,并且必须在下一个请求中使用。有人可以帮我提取价值吗?

jmeter
3个回答
3
投票

您的 JSON 似乎不正确。有效的 JSON 应该类似于:

{
   "Data":{
      "orderId":null,
      "Tokens":{
         "Key":"abcdefgh123456",
         "Txnid":"test_5950"
      },
      "success":true,
      "Test":"success"
   }
}
  • JSON Extractor 添加到要从中提取 Key 值的请求。
  • 指定变量名称,即
    key
  • JSON 路径表达式将为:
    .Data.Tokens.Key
  • 将提取的值用作下一个请求中的
    ${key}

1
投票

如果您的 JSON 确实看起来与您发布的一模一样,那么最合适的后处理器将是 正则表达式提取器

相关的正则表达式类似于:

"Key"?\s*:?\s*"(\w+)"

地点:

  • ``?\s*` - 任意数量的空格(以防万一)
  • \w
    - 匹配“单词”字符(字母数字加下划线)
  • +
    - 重复
  • ()
    - 分组

enter image description here

更多信息:


0
投票

“Key”?\ s *:?\ s *“(\ w +)”对我有用,谢谢@Dmitri T。

© www.soinside.com 2019 - 2024. All rights reserved.