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

How to extract value from serialized json response in Jmeter

我收到了针对 api 请求的序列化 json 格式的响应,如下所示

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

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

您的 JSON 似乎不正确。有效的 JSON 应该是这样的:

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

如果您的 JSON 真的和您发布的完全一样,最合适的 Post-处理器将是 Regular Expression Extractor

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

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

其中:

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

更多信息: