JMeter正则表达式提取器使用详解

整体目录结构:

 

http请求的访问地址为:

http://www.stats.gov.cn//tjsj/tjbz/tjyqhdmhcxhfdm/2019/14/1402.html

需要抓取的内容为:

<tr class='countytr'><td><a href='02/140212.html'>140212000000</a></td><td><a href='02/140212.html'>新荣区</a></td></tr>

<tr class='countytr'><td><a href='02/140213.html'>140213000000</a></td><td><a href='02/140213.html'>平城区</a></td></tr>

<tr class='countytr'><td><a href='02/140214.html'>140214000000</a></td><td><a href='02/140214.html'>云冈区</a></td></tr>

<tr class='countytr'><td><a href='02/140215.html'>140215000000</a></td><td><a href='02/140215.html'>云州区</a></td></tr>

……

因此正则表达式为:

countytr'><td><a href='([^']*)'>([^<]*)</a></td><td><a href='([^']*)'>([^<]*)<

正则表达式解释:

^  表示匹配字符串的开始位置  (例外  用在中括号中[ ] 时,可以理解为取反,表示不匹配括号中字符串)

*  表示匹配 零次到多次

(  ) 小括号表示匹配括号中全部字符

[  ] 中括号表示匹配括号中一个字符 范围描述 如[0-9 a-z A-Z]

上述正则表达式中有4对(),因素定义4个模板,分别获取匹配到的4个值。

 

匹配数字:正则表达式匹配数据的所有结果可以看做一个数组,匹配数字即可看做是数组的第几个元素。-1表示全部,0随机,1第一个,2第二个,以此类推。若只要获取到匹配的第一个值,则填写1。

获取的值为:
str_1=02/140212.html,140212000000,02/140212.html,新荣区

str_1_g=4

str_1_g0=countytr'><td><a href='02/140212.html'>140212000000</a></td><td><a href='02/140212.html'>新荣区<

str_1_g1=02/140212.html

str_1_g2=140212000000

str_1_g3=02/140212.html

str_1_g4=新荣区

 

str_2=02/140213.html,140213000000,02/140213.html,平城区

str_2_g=4

str_2_g0=countytr'><td><a href='02/140213.html'>140213000000</a></td><td><a href='02/140213.html'>平城区<

str_2_g1=02/140213.html

str_2_g2=140213000000

str_2_g3=02/140213.html

str_2_g4=平城区

……

str_11=02/140271.html,140271000000,02/140271.html,山西大同经济开发区

str_11_g=4

str_11_g0=countytr'><td><a href='02/140271.html'>140271000000</a></td><td><a href='02/140271.html'>山西大同经济开发区<

str_11_g1=02/140271.html

str_11_g2=140271000000

str_11_g3=02/140271.html

str_11_g4=山西大同经济开发区

str_matchNr=11

 

采用循环控制器取全部的值,循环次数为str_matchNr,即正则表达式取到的数组个数。

循环控制器会从1循环到最大值。

 

在循环过程中增加一个计数器用于取当前循环值, java请求用于显示循环过程中取到的值。

${__V(str_${counter1}_g1)}

${__V(str_${counter1}_g2)}

${__V(str_${counter1}_g3)}

${__V(str_${counter1}_g4)}

分别是获取到的4个值,其中counter1是计数器,str是正则表达式定义的返回值前缀,__V是JMeter的函数,用于变量嵌套。

再增加调试取样器用于跟踪分析,查看结果数用于显示执行结果。

在循环过程中可以增加BeanShell取样器把执行结果写到文件中,也可以通过JDBC Request记录到数据库中。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值