我正在尝试从下面的html响应代码中提取字符串(201
& 202
)。
到目前为止,我已经尝试了以下正则表达式
punumber=(.+)
但问题是页面上有punumber
的许多实例,并为我提供了我不需要的东西。
我需要的字符串在<h3 class="content-title">
。
那么有人可以帮我写一个正则表达式来提取h3类中的单数吗?
<h3 class="content-title">
<!-- change when this is completed -->
<a href="/container/recentIssue.jsp?punumber=201">
Title 1
</a>
</h3>
<h3 class="content-title">
<!-- change when this is completed -->
<a href="/container/mostRecentIssue.jsp?punumber=202">
Title 1
</a>
</h3>
答案 0 :(得分:5)
这对我有用:
Reference Name : test
Regexp : punumber=([^"]+?)"
Template : $1$
Match No : -1
(这将获得所有值) NV_punumber
使用-1,JMeter将创建:
$ {test_1} =&gt; 201
$ {test_2} =&gt; 202
答案 1 :(得分:2)
这是适用于我的正则表达式:
punumber=(\d+)
如果你正在解析html,你应该考虑使用除了正则表达式以外的其他东西来提取像jsoup这样的信息。
无论如何,这里是附带虚拟采样器(带有正则表达式后处理器)的jmeter测试文件,用于模拟您的案例和调试采样器,以获得您想要的结果。
答案 2 :(得分:0)
在这种情况下,您可以将XPath Extractor与结构化查询(从href
标记内的ONLY实例中获取punumber
所有<h3>
值)与提取然后{来自ForEach Controller循环中punumber
的值{1}}。
. . . YOUR HTTP REQUEST XPath Extractor Use Tidy = true Reference Name = punum XPath Query = //h3[@class="content-title"]/a[text()="Title 1"]/@href Default value = NOT_FOUND ForEach Controller Input variable prefix = punum Output variable name = pnum Add "_" before number = true User Parameters cnt = ${__counter(FALSE,)} Regular Expression Extractor Apply to = Jmeter Variable = pnum Reference Name = punumber_${cnt} Regular Expression = punumber=(\d+) Template = $1$ Match No. = 1 Default value = NOT_FOUND ... . . .
href
标记下的所有hrefs
个项提供<a>
个值<h3>
,punum_1
,...,{{1 vars。punum_2
var,将其称为punum_N
,适用于RegEx Extractor以获取punum_X
值,并将提取的值存储为pnum
,{ {1}},...,punumber
(使用用户参数中定义的计数器并逐步递增)。注意:由于此处XPath Extractor用于解析HTML(而非XML)响应,请确保使用Tidy(容错解析器)选项已检查(在XPath Extractor's control panel中)。
此处提供相同的测试计划:http://db.tt/dnACZtGL(我已经使用了@ ant的答案,谢谢他)。