在JMETER中使用正则表达式从HTML响应中提取值?

在JMETER中使用正则表达式从HTML响应中提取值?,html,regex,jmeter,Html,Regex,Jmeter,我从Jmeter那里得到如下回应: //form[@name='MyForm']//input[@name='queueItemId']/@value 我想从中获取值3256并将其存储在变量中。然后我可以进一步使用这个变量,比如${variable}。 为此,我在采样器的范围内使用了RegularExpressionExtractor 请给我正则表达式以提取此值。以下是XPath查询:- //输入[@type=“hidden”][@id=“queueItemId”][@name=“queue

我从Jmeter那里得到如下回应:

//form[@name='MyForm']//input[@name='queueItemId']/@value

我想从中获取值3256并将其存储在变量中。然后我可以进一步使用这个变量,比如
${variable}
。 为此,我在采样器的范围内使用了
RegularExpressionExtractor


请给我正则表达式以提取此值。

以下是XPath查询:-

//输入[@type=“hidden”][@id=“queueItemId”][@name=“queueItemId”]@value

尝试以下方法:

encounterId=([0-9]+)
并使用组1作为结果。

或尝试此代码
regexId='\d+'

以下正则表达式将匹配参数及其值:

\bencounterId=(\d*)

括号用于提取值。请注意单词boundary
\b
确保以
encounterId
结尾的参数(例如
fooencounterId
)不匹配。

比使用正则表达式提取该值更好我建议使用XPath提取,如下所示:

//form[@name='MyForm']//input[@name='queueItemId']/@value

如果
MyForm
是您的表单名称,请用您拥有的任何名称替换。

实际上,最好的awnser是来自Ibu的注释:

值=\“(\d+)\” 并且:value=“([^”]+?)”也可以正常工作

因此,在Jeter中,它将如下所示:

引用名称:value

正则表达式:(\s值=\”(\d+)\”)

正则表达式:(\s value=“([^”]+?)”)

模板:$2$

比赛编号:1

如果只需要具有引用名称queueItemId的值,则可能需要将reg ex修改为该值

从jmeter reg ex提取器中,您可以得到:

引用名称:queueItemId

正则表达式:(name=“queueItemId”\s value=“([^”]+?)”)

正则表达式:(name=“queueItemId”\s value=\“(\d+)\”)

模板:$2$

比赛编号:1

您应该与jakarta oro一起检查正则表达式,因为jmeter使用的是正则表达式引擎

在这里查看雅加达奥罗:

ORO是一个reg ex工具,其行为几乎与jmeter完全相同

大多数情况下,standart reg-ex工具都可以工作,但有时我碰巧发现,reg-ex在我的工具中很好,但在jmeter中不起作用

后来我发现了ORO工具,并能够在ORO(和jmeter)中工作

另一个注意事项:我认为jmeter忽略注册表中的空格,当您要比较空格时,必须添加/s。

var str=“”
var str = "<a href='/openmrs/module/moca/encounterViewer.form?encounterId=3537'></a>"
var regex = /<a.*?href='(.*?)'/;
var src = regex.exec(str)[1];
var numb = src.split("=")[1];
alert (numb);

var regex=/在最新版本的JMeter中,最易于维护的方法是使用:

最有效的方法是使用新的:

如果您确实想使用:


Value 3256?请添加更多信息。如果这是唯一附加的查询字符串,为什么不在
=
上拆分它,并使用第二组语言??
Javascript
或任何服务器端语言,如
php
perl
python
等。是否希望这样:如果值包含删除,不考虑您的id或姓名中可能有数字。此问题已被合并,我的答案不适合上述问题…我已将其标记。