【问题标题】:How to save response body of a particular sampler in while controller in JMeter如何在 JMeter 的控制器中保存特定采样器的响应主体
【发布时间】:2020-04-20 17:24:55
【问题描述】:

我有一个 Web 套接字单读采样器作为 While 控制器的子级。该采样器根据其他输入条件循环一定(动态)次数。我必须从其中一个响应中提取一个值。

如果我将正则表达式提取器添加为 Web 套接字采样器的子项,它无法捕获正确的值,因为随着循环的进行,值会被覆盖。

我目前的测试计划是这样的:

Thread Group
    \_ .. other components
    \_ While loop
    \_Web socket single read sampler
        \_Regular expression Extractor
    \_ .. other components

有没有办法指定正则表达式提取器以根据 Web 套接字单读采样器的响应正文中出现的一些其他文本来捕获值?

提前致谢!

【问题讨论】:

    标签: regex websocket while-loop jmeter


    【解决方案1】:

    我通过如下设计测试计划解决了这个问题:

    Thread Group
        \_ .. other components
        \_ While controller
            \_ Web socket single read sampler
                \_ Regular expression extractor to save entire response body
            \_ If controller (condition: occurrence of specific text in response body)
                \_ Dummy sampler (pass saved response body)
                    \_ Regular expression extractor to save required value 
        \_ .. other components
    

    【讨论】:

      【解决方案2】:

      您可以在正则表达式提取器后添加JSR223 PostProcessor 并使用如下代码:

      if (vars.get('your_variable_here').contains('your_value_here')) {
          vars.put('some_specific_response', prev.getResponseDataAsString())
      }
      

      地点:

      有关可用于 JSR223 测试元素的 JMeter API 快捷方式的更多信息,请参阅 Top 8 JMeter Java Classes You Should Be Using with Groovy 文章。

      如果 JMeter 变量 your_variable_here 将包含 your_value_here 文本,则后处理器会将整个父采样器响应数据存储到 ${some_specific_response} JMeter 变量中

      【讨论】:

      • 感谢@Dmitri T!有没有办法只为“your_value_here”的第一次出现保存响应正文?
      猜你喜欢
      • 1970-01-01
      • 2021-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多