JMeter3.0版本无法正常使用正则表达式提取器,这里用的3.2版本进行以下操作。
注:线程组下的某些组件被红框框起来了,不用太过关注,那是由于操作时,存在一些失误,没有特殊意义。
1.配置好如下组件:
http://mobile.weather.com.cn/data/sk/101010100.html?这里用天气预报API来做演示,URL:http://mobile.weather.com.cn/data/sk/101010100.html?
2.在设置正则表达式之前,先运行脚本,从结果树中找出目标参数,在依此确定表达式的左右边界。
如下图:
3.这里,我想要取“北京”这个作为参数,表达式如下:
{"sk_info":{"date":"20131012","cityName":"(.+?)"4.运行结果如下图:
5.这里可以将参数放在Debug Sampler后面,作为一个名称:
6.也可以将正则表达式设置为提取多个参数:
正则表达式设置如下:
Debug Sampler名称设置:
结果:
Debug Sampler 名称(Debug Sampler--${city_g2}_${city_g1}_${city_g3})7.正则表达式中特殊字符需要用\来转译,对多个匹配到的值,取第n个,则设置匹配数字为(n),0为随机,-1为所有。如下图:
模板($1$ ) + 匹配数字(-1) 模板( $1$ ) + 匹配数字( 1 ) 模板( $2$ ) + 匹配数字( 2 )如果正则表达式只取一个数(即表达式中只有一个()),只能用$1$,如果中间数字不为1的话,则变量(good_id)取不到数。
8.$1$$2$$3$……的用法:
模板($2$$1$$3$ ) 模板($3$$1$$2$ )通过以上两张图片已经说明了模板的使用规则及方法。
网友评论