什么是从字符串中提取123 + 43的正则表达式'什么是(123 + 43)?'在JMeter的正则表达式提取器中?

时间:2015-01-08 02:42:57

标签: java javascript testing jmeter

实际的html响应包含大数据,其间有以下几行

<span style="width:50%"><font color="#000000">What is (123+43)?</font></span>

大括号内的数字每次都会变化,算术操作数也会变化。那么如何在JMeter中使用正则表达式提取器获取括号内的整个字符串?

我用什么是/(([^)] +))/但我没有得到任何东西。

此外,我想知道如何在提取String并将其分配给变量后在JMeter中执行算术运算。我尝试使用JSR233预处理器,但我不知道如何将结果发送回下一个Http请求。

PS:从“什么是(123 + 43)?”中提取表达式所能达到的最接近的是What is (.+?\))但它输出为(123 + 43)。我也想删除大括号。那是我被击中的。

我添加正则表达式的地方

http://i.imgur.com/UkQD80O.png

3 个答案:

答案 0 :(得分:1)

发现两者都没有。你可以单独使用以下表达式,

What is \((\d+)(.)(\d+)\)\?

JMeter Regex提取器中的模板值为$1$$2$$3$

如果您的提取器引用名称是val,那么

val_g1 will be 123
val_g2 will be +
val_g3 will be 43

添加2个。您可以在JMeter中使用beanshell预处理器。 将提取的值与operator一起提供给beanshell处理器并对其执行算术运算,并将结果变量传递给下一个请求。

示例在这里,JMeter Advance features.

答案 1 :(得分:0)

您想要的正则表达式是

(?<=What is \()[-+\d]+(?=\)\?)

如果您将其用作Java "(?<=What is \\()[-+\\d]+(?=\\)\\?)"文字或类似内容,请不要忘记使用String之类的反斜杠。

这使用了(?<=)之间的正面观察,然后是您要匹配的部分,然后是(?=)之间的正向前瞻。对于你想要匹配的部分,我假设任何数字,优缺点都是正确的。

答案 2 :(得分:0)

试试这个:

What is \((.+?)\)\?

希望是有帮助的。