1

我正在尝试从下面的 html 响应代码中提取字符串 ( 201& )。202到目前为止,我已经尝试了以下正则表达式

punumber=(.+)

但问题是页面上有很多实例,punumber让我得到了我不需要的东西。
我需要的字符串在<h3 class="content-title">.

那么有人可以帮我写一个正则表达式来提取 h3 类中的 punumber 吗?

<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>
4

3 回答 3

5

这对我有用:

Reference Name : test
Regexp : punumber=([^"]+?)"

Template : $1$

Match No : -1

(这将获得所有值) NV_punumber

使用 -1,JMeter 将创建:

  • ${test_1} => 201

  • ${test_2} => 202

于 2013-01-17T21:30:39.323 回答
2

这是对我有用的正则表达式:

punumber=(\d+)

如果您正在解析 html,您应该考虑使用除正则表达式之外的其他东西来提取 jsoup 之类的信息。

无论如何,这里是带有虚拟采样器(带有正则表达式后处理器)的 jmeter 测试文件,用于模拟您的案例和调试采样器,以获得您想要的结果。

http://pastebin.com/Uti8Pv9E

于 2013-01-17T21:32:54.653 回答
0

在这种情况下,您可以将XPath Extractor与结构化查询(仅从标签内的实例中获取所有href值)结合起来,然后从ForEach 控制器循环中提取值。punumber<h3>punumberhref

. . .
您的 HTTP 请求
    XPath 提取器
    使用整洁 = true
    参考名称 = punum
    XPath 查询 = //h3[@class="content-title"]/a[text()="Title 1"]/@href
    默认值 = NOT_FOUND
ForEach 控制器
输入变量前缀 = punum
输出变量名 = pnum
在 number = true 之前添加“_”
    用户参数
    cnt = ${__counter(FALSE,)}
    正则表达式提取器
    适用于 = Jmeter 变量 = pnum
    参考名称 = punumber_${cnt}
    正则表达式 = punumber=(\d+)
    模板 = $1$
    比赛编号 = 1
    默认值 = NOT_FOUND
    ...
. . .
  1. XPath Extractor 将为您提供标签下hrefs所有<a>项目的值,如, ,..., vars。<h3>punum_1punum_2punum_N
  2. Foreach 控制器获取一个又一个punum_Xvar,将其引用为pnum,将其应用于 RegEx 提取器以获取punumber值并将提取的值存储为punumber_1, punumber_2,..., punumber_N(使用用户参数中定义的计数器并每步递增)。

注意:由于这里 XPath Extractor 用于解析 HTML(不是 XML)响应,请确保选中Use Tidy(容错解析器)选项(在XPath Extractor 的控制面板中)。

此处提供相同的测试计划:http: //db.tt/dnACZtGL(我使用了@ant 的答案,谢谢他)。

于 2013-01-18T16:40:54.800 回答