转载自:http://blog.csdn.net/quiet_girl/article/details/50724313
在使用Jmeter过程中,会经常使用到正则表达式提取器提取器,虽然并不直接涉及到请求的测试,但是对于数据的传递起着很大的作用,本篇博文就是主要讲解关于正则表达式及其在Jmeter的Sampler中的调用。
文中使用的正则表达式测试器(RegexTester)下载地址:http://soft.hao123.com/soft/appid/54251.html
一、首先来介绍一下J meter中正则表达式提取器的元素组成,下图所示:
下面是各参数值的含义:
参数 | 释义 |
---|---|
引用名称 | 在HTTP等请求中,引用此数据,需要用到的名称 |
正则表达式 |
用于解析响应数据的正则表达式,其中必须包含至少一个圆括号集“()”; 此处的()即使配合下面的模板进行数值提取使用 |
模板 | 表示使用提取到的第几个值:$0$:表示引用整个表达式的匹配 $1$:表示取第1个 $2$:表示取第二个 以此类推:$n$:表示取第n个
|
匹配数字(0代表随机) |
0 代表随机取值,一个正整数n意味着选择第几次匹配。 |
缺省值 | 如果正则表达式没有搜找到值,则使用此缺省值 |
二、下面是第一个比较简单的例子,就是正则表达式的匹配值只有一个取值,正则表达式测试如图:
这种最简单的情况在Jmeter正则表达式提取器和HTTP请求中的设置如下:
三、下面的例子是正则表达式的匹配值有两个取值,正则表达式测试如图:
这种情况在Jmeter正则表达式提取器和HTTP请求中的设置如下:
四、一种不是很常见的情况是有若干个匹配数据,使用正则表达式测试器测试的结果如下:
若希望取到17这个值,则对应的是第二列第二行($2$, ${javawd_g2})
,如果是第三列第四行的数据,则对应的是($3$,${javawd_g4})
这种情况在Jmeter正则表达式提取器和HTTP请求中的设置如下:
其实上诉的这种方式完全可以通过改变Jmeter匹配数字来进行提取: