【问题标题】:Jmeter parameter extractionJmeter参数提取
【发布时间】:2016-03-22 06:52:57
【问题描述】:

我在 jmeter 测试中得到一个我不明白的结果:

我正在尝试从这个 Json 响应中提取“totalRunning”值:

{"notifications":[],"taskNotificationInfo":{"totalRunning":0,"totalCompleted":0,"totalCompletedWithErrors":0,"totalFailed":0,"totalPending":0,"requestTime":1458628767436,"hasRecords":false}}

我的正则表达式配置如下:

参考名称:TotalRunning

正则表达式:"totalRunning":"(.+?)"

模板:$1$

匹配:1

默认值:1

屏幕截图:

在这种情况下,我一直获取默认值而不是“0”。 我是从错误的地方提取它吗?

任何帮助将不胜感激。

【问题讨论】:

    标签: regex jmeter load-testing jmeter-plugins


    【解决方案1】:

    你的regextotalRunning":(.+?),"totalCompleted"没有问题

    只有您需要选择单选按钮 Body 而不是 Body As a Document 参考快照:-

    【讨论】:

      【解决方案2】:

      如下改变你的正则表达式:

      Regular Expression: "totalRunning":(\d+)
      

      在问题"totalRunning":"(.+?)" 被用作正则表达式。由于 totalRunning 的值没有被引号包围。所以没有被匹配,并且正在选择默认值。

      下面的正则表达式也可以使用:

      "totalRunning":(.+?),
      

      【讨论】:

      • 愿意分享为什么 (.+?) 没有抓住数字?仅适用于字符?
      • @TomerInbar 描述已共享。看看那个。
      • 谢谢,没看到。我认为 (.+?) 必须有 ".
      【解决方案3】:

      将“要检查的字段”更改为“正文”,因为“作为文档的正文”适用于 Word、Excel、PDF 等二进制文件。有关详细信息,请参阅How to Extract Data From Files With JMeter 文章。 JSON 是普通文本,因此应将其视为“正常”响应。

      还有一个特殊的后处理器 - JSON Path Extractor 可通过 JMeter Plugins 项目获得。在复杂的 JSON、多个或条件匹配等情况下,使用它可能会更好、更容易。

      相关的 JSONPath 表达式将是:$..totalRunning[0]

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-07
        • 2016-06-03
        • 2014-07-18
        • 1970-01-01
        • 2021-12-30
        • 2021-10-27
        相关资源
        最近更新 更多