如何将jmeter响应提取到变量中?

时间:2016-03-22 11:26:11

标签: jmeter automated-tests

我想将一些响应存储为变量,稍后在我的测试中使用它们。我尝试在后处理器beanhell中使用以下内容:

response = prev.getResponseDataAsString();
vars.put("memID", response);

然而,我发现我正在" stdout:"和" stderr"也存储在变量中。如何在没有这些和额外空格的情况下存储响应?

编辑:下面的回复示例 -

stdout:
      4281


stderr:

我只需要这个回复的号码4281。

3 个答案:

答案 0 :(得分:3)

您需要使用regular expression从响应中捕获任何内容,将其保存到名为Reference Name的TextBox中的变量中。以下快照为例。

enter image description here 从上面的示例中,您可以在脚本中的任何位置使用total_quantity。

  像这样 - > $ {total_quantity}

答案 1 :(得分:1)

根据Regular expressions in Perl

,JMeter支持Perl5风格的正则表达式
  

\ d 匹配任何数字字符,等同。至[0-9]

     

+ 匹配1次或更多次

因此,您的正则表达式应该像(\d+)

一样简单

演示:

Regex Demo

有关详细信息,请参阅Regular Expressions手册章节。

另请注意,您可以使用View Results Tree监听器的“RegExp Tester”模式实时测试您的正则表达式实时响应,如上图所示。查看How to debug your Apache JMeter script文章,了解更多问题排查方法。

答案 2 :(得分:0)

您需要仔细检查边界,并且正在使用的正则表达式正在捕捉您想要的内容。

帮助您的好工具是:https://regex101.com/

享受,

罗兰