实际的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)。我也想删除大括号。那是我被击中的。
我添加正则表达式的地方
答案 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 \((.+?)\)\?
希望是有帮助的。