在使用Jmeter过程中,会经常使用到正则表达式提取器提取器,虽然并不直接涉及到请求的测试,但是对于数据的传递起着很大的作用,本篇博文就是主要讲解关于正则表达式及其在Jmeter的Sampler中的调用。
文中使用的正则表达式测试器(RegexTester)下载地址:http://soft.hao123.com/soft/appid/54251.html
一、首先来介绍一下J meter中正则表达式提取器的元素组成,下图所示:
下面是各参数值的含义:
参数 释义
引用名称 在HTTP等请求中,引用此数据,需要用到的名称
正则表达式 用于将需要的数据提取出来
模板 表示使用提取到的第几个值:
$-1$:表示取所有值
$0$:表示随机取值
$1$:表示取第1个
$2$:表示取第二个
以此类推:$n$:表示取第n个
匹配数字(0代表随机) 0 代表随机取值,1 代表全部取值
缺省值 如果正则表达式没有搜找到值,则使用此缺省值
二、下面是第一个比较简单的例子,就是正则表达式的匹配值只有一个取值,正则表达式测试如图:
这种最简单的情况在Jmeter正则表达式提取器和HTTP请求中的设置如下:
三、下面的例子是正则表达式的匹配值有两个取值,正则表达式测试如图:
这种情况在Jmeter正则表达式提取器和HTTP请求中的设置如下:
四、一种不是很常见的情况是有若干个匹配数据,使用正则表达式测试器测试的结果如下:
若希望取到17这个值,则对应的是第二列第二行($2$, ${javawd_g2}),如果是第三列第四行的数据,则对应的是($3$,${javawd_g4})
这种情况在Jmeter正则表达式提取器和HTTP请求中的设置如下: