首页 > 代码库 > jmeter--正则表达式提取器
jmeter--正则表达式提取器
今天实际操作了一下,正则表达式的提取,再此做一下总结。
首先先介绍一下正则表达式需要使用到的符号,并解释一下:
####################################################################################################
( ):封装了待返回的匹配字符串。
. :匹配任何字符。
+ :一次或多次。
? :不要太贪婪,在找到第一个匹配项后停止。
如果没有?,在找到第一个匹配项后,会继续寻找,直到最后一个匹配项,这么做很可能不是测试人员期望的。
尽管上面的表达式可以达到目的,但是使用如下表达式更有效率:name="file" value="http://www.mamicode.com/([^"]+)">,其中[^"]-意味着匹配任何东西(除了")。在这种情况下,匹配引擎在找到第一个右侧"后,就会停止搜索。而 上面例子中的匹配引擎会去寻找">。
#####################################################################################################
下面直接举例子,以用例来理解应用。比如,我想从下面的表达式中提取内容
############################################################################################
<link href="http://www.mamicode.com/css/library/kendo/kendo.bootstrap.min.css" rel="stylesheet" />
<link href="http://www.mamicode.com/css/style.css" rel="stylesheet" />
<link href="http://www.mamicode.com/css/alert.css" rel="stylesheet" />
<link href="http://www.mamicode.com/css/bohLogin.css" rel="stylesheet" />
#####################################################################################################
正则表达式的书写方式我就不介绍了,网上很多,我着重介绍模板和匹配数字文本框的配置以及输出内容的表达方式,表达式如下所示
A:当匹配数字和模板为正数时,输入表达式有以下几种输出方式
(一):${aa} --模板指定的组数加上匹配数字数
eg:模板:$2$ 匹配数字:2 则 ${aa}=style.css --即第2租取到的第2个数值
(二) : ${aa_gn} --第n组的数字+匹配数字
eg: 模板:-- 匹配数字:3 则 ${aa_g2}=alert.css --即第2租取到的第3个数值
(三):${aa_g} --正则表达式的组数
eg: 模板:-- 匹配数字:-- 则${aa_g}=3 --即正则表达式有3组数据
B:当模板写为$0$,匹配数字为正数时,表达式如下
eg: 匹配数字:2 则${aa}=<link href="http://www.mamicode.com/css/style.css" rel="stylesheet" /> --即输入正则表达式的完整匹配项
C:当上述两者情况下找不到匹配项时,则只有一种表达式有效,并且输出的是缺省值
eg: ${aa}=cuowu
D:当匹配数字写-1时,有以下几种表达式
(一):${aa_matchNr} --发现的匹配条数
eg: ${aa_matchNr}=4 --即有4条数据符合要求
(二):${aa_n} --模板表达式中的组数中的第n个数
eg: 模板:$2$ 则 ${aa_2}=style.css --即第2组数中的第2个数
(三):${aa_n_gm} --第m组数中的第n个数
eg: ${aa_4_g2}=bohLogin.css --第2组中的第4个数