正则表达式提取器元件介绍
正则表达式提取器是位于后置处理器中的一个元件,它的作用是在请求发出 并得到响应后,把响应信息中的部分通过正则表达式提取所需值,并将结果存储 到给定的变量名中。可通过后置处理器--正则表达式提取器添加。
常用的使用场景:关联的实现
从前一个请求的响应结果中,提取到某些需要的内容,可以作为下一个接口需要的入参从而实现关联。例如:用户的登录登出、获取订单号。
关联即把上一个接口返回的值的部分作为下一个接口传入的参数的过程称为 关联,也称为接口之间的串行传参或相互依赖。
正则表达式元字符详细信息: https://www.runoob.com/regexp/regexp-metachar.html
添加路径如下:
正则表达式提取器界面展示
名称/注释:自定义的描述性文字
APPly to: 作用范围
Main sample and sub-samples: 作用于主节点的取样器及对应子节点的取样器
Main sample only:仅作用于主节点的取样器
Sub-samples only: 仅作用于子节点的取样器
JMeter Variable Name to use: 作用于jmeter变量(输入框内可输入jmeter的变量名称),从指定 变量值中提取需要的值
要检查的响应字段:
1、主体:响应报文的主体,最常用
2、Body(unescaped):主体,是替换了所有的html转义符的响应主体内容,注 意html转义符处理时不考虑上下文,因此可能有不正确的转换,不太建议使用
3、Body as a Document:从不同类型的文件中提取文本,注意这个选项比较影 响性能
4、信息头:响应头部信息;
5、Request Headers: 请求信息头;
6、URL:请求url;
7、响 应代码:比如200、404等;
8、响应信息:响应正文。
引用名称:Jmeter变量的名称,存储提取的结果;如果在下个请求中想引用这个 变量,语法:${引用名称}
${引用名称_0}: 表示取整个正则表达式的值
${引用名称_1}: 表示取第一个的值
${引用名称_2}: 表示取第二个的值
正则表达式:使用正则表达式解析响应结果,“()”表示提取字符串中的部分值。 常用的正则表达式为 (.+?)
():括起来的部分就是要提取的内容;
.:匹配任意字符串;
+:匹配一次或多次;
?:在找到第一个匹配项后停止匹配。
模版:用$$引用起来,如果在正则表达式字段中,文本框写了多个正则表达式, 则可以是$2$$3$等等,表示提取到的第几个值给引用名称;如:$1$ 表示匹配到的第1个值赋给引用名称。
匹配数字:正则表达式匹配数据的结果可以看做一个数组,该字段表示如何取值: 0代表随机取值,正数n则表示取第n个值(比如1代表取第一个值),负数则表 示提取所有符合条件的值
缺省值:如果正则表达式没有匹配到值,则使用此缺省值给引用名称。也可以勾 选使用空默认值,使用空作为默认值
jmeter中如何关联操作的步骤如下:
1、在上一个取样器中增加正则表达式提取器提取需要的值;
如下图:在第一个http请求下添加正则表达式提取器提取响应信息
2、在下一个取样器需要值的部分用 ${变量名} 方式引用
如下图:在第二个http请求中引用变量名
在线正则表达式测试工具讲解:
该工具主要针对程序开发人员和测试人员使用,通过该工具可以快速准确的 判断所写的正则是否能正确匹配相应的字符。
比如我们在平时的接口测试工作中,为了验证正则表达式编写取到的值是否 正确,需要反复去执行请求并调试,而使用在线正则表达式测试工具你可以只执 行一次请求,然后把响应正文拷贝出来放入在线正则表达式测试工具中的待匹配 文本处,把写好待验证的的正则表达式去进行验证即可,验证通过,再把正确的 正则表达式放入jmeter该元件中
工具网址:https://tool.oschina.net/regex
调试取样器(Debug sampler)
在进行正则表达式实战之前,为了能查看正则表达式截取的值是否准确, 可以用调试取样器来查看。通过取样器--调试取样器添加该元件即可,默认查看 变量的值,一般把调试取样器放置在所有取样器后面即可。
1、取响应状态码
2、取响应信息
3、取指定的响应头部信息
4、截取响应正文部分
5、匹配多项随机取值