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

时间:2011-05-31 06:11:25

标签: html regex jmeter

我正在接受Jmeter的回应:

  

< input type =“hidden”id =“queueItemId”name =“queueItemId”value =“3256”/>

我希望从中获取值3256并将其存储在变量中。然后我可以使用此变量进一步使用,如${variable}。 为此,我在Sampler的范围内使用RegularExpressionExtractor

请给我正则表达式来提取这个值。

8 个答案:

答案 0 :(得分:3)

尝试类似:

encounterId=([0-9]+)

并使用组1作为结果。

答案 1 :(得分:1)

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

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

MyForm是您的表单名称,请替换为您拥有的任何内容。

答案 2 :(得分:1)

实际上,最好的awnser来自评论中的 Ibu

值= \ “(\ d +)\” 和:value =“([^”] +?)“也将工作

所以在jemter中它看起来像这样:

  

参考名称:值

     

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

     

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

     

模板:$ 2 $

     

匹配编号:1

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

所以从jmeter reg ex extractor得到:

  

参考名称:queueItemId

     

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

     

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

     

模板:$ 2 $

     

匹配编号:1

你应该用jakarta oro检查正则表达式,因为它是jmeter使用的reg ex引擎。

在这里查看雅加达ORO:http://jakarta.apache.org/oro/demo.html

ORO是一种注册工具,其行为几乎与jmeter完全相同。

大部分时间,标准的注册工具都能正常工作,但有时我发现reg ex在我的工具中很好但是没有在jmeter中工作。

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

另一个注意事项:我认为jmeter会忽略你的注册表中的空格,你需要在比较空格时添加/ s。

答案 3 :(得分:0)

这是XPath查询: -

//input[@type="hidden"][@id="queueItemId"][@name="queueItemId"]@value

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

\bencounterId=(\d*)

括号可以提取值。请注意边界\b,以确保以encounterId结尾的参数(例如fooencounterId)不匹配。

答案 6 :(得分:0)

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);

答案 7 :(得分:0)

最近版本的JMeter中最易于维护的方法是使用UIAlertController

CSS/JQuery Extractor

效果最佳的是使用新的Using CSS/JQuery

Boundary Extractor

如果您真的想使用Boundary Extractor

Regular_Expression_Extractor