【问题标题】:Extract values from json string using Regex使用正则表达式从 json 字符串中提取值
【发布时间】:2019-10-04 10:54:56
【问题描述】:

我从一个 HTTP Web 请求得到以下响应。我想使用 jmeter 中的单个正则表达式提取器后处理器将 ConnectionToken 的值、ConnectionId 值保存在单独的变量中。

有什么办法或替代方法吗?

{"Url":"/Administration/signalr","ConnectionToken":"/75qb328dXVeojvZYoX34bkWCnji55Zp5+eGEMbas4q0+qdcLNwTRMGHjZVwXgKIgixUc0sxhF659A6ttgg3xPkGOXQquii1sOscozYeEaBpcMmVFPQkeKnxwTf2Yjp007gbag==","ConnectionId":"1dc235ed-6f1f-41eb-bdfd-d0b8625aead6","KeepAliveTimeout":4.0,"DisconnectTimeout":6.0,"ConnectionTimeout":110.0,"TryWebSockets":true,"ProtocolVersion":"1.5","TransportConnectTimeout":5.0,"LongPollDelay":0.0}

【问题讨论】:

  • 使用m/"ConnectionToken":"(.*?)",/g

标签: json regex http jmeter jsr223


【解决方案1】:

我不建议使用正则表达式来从JSON 数据中提取值,因为它结构良好,因此可以更快、更可靠地使用JSON Extractor 进行解析,它允许通过@987654323 获取“有趣”的值@查询。

在您的情况下,相关的 JsonPath 表达式将很简单:

$.ConnectionToken

演示(假设“JsonPath Tester”更多的是View Results Tree 侦听器)

【讨论】:

    【解决方案2】:

    您可以使用 2 JSON Extractor Post Processor 来实现这一点。将 JSON Extractor PostProcessor 添加为 HTTP 请求的子项。

    1. 提取 ConnectionID:使用以下表达式

    $.ConnectionId

    1. 要提取 ConnectionToken :使用以下表达式

    $.ConnectionToken

    1. 之后可以分别从变量${ID} and ${Token}访问ID和Token

    【讨论】:

      猜你喜欢
      • 2018-03-12
      • 1970-01-01
      • 1970-01-01
      • 2014-10-17
      • 2014-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-23
      相关资源
      最近更新 更多