正则表达式提取器(Regular Expression Extractor)

sampler请求的服务器响应结果中通过正则表达式提取值所需值,生成模板字符串,并将结果存储到给定的变量名中。

界面如下:

jmeter正则表达式用法(jmeter十五-正则表达式提取器)(1)

正则表达式提取器界面

1)Main sample and sub-samples:作用于主节点的取样器及对应子节点的取样器

2)Main sample only:仅作用于主节点的取样器

3)Sub-samples only:仅作用于子节点的取样器

4)JMeter Variable:作用于jmeter变量(输入框内可输入jmeter的变量名称),从指定变量值中提取需要的值。

1)主体:响应报文的主体,最常用

2)Body(unescaped):主体,是替换了所有的html转义符的响应主体内容,注意html转义符处理时不考虑上下文,因此可能有不正确的转换,不建议使用

3)Body as a Document:从不同类型的文件中提取文本,注意这个选项比较影响性能

4)Response Headers(信息头):响应信息头(

5)Request Headers:请求信息头

6)URL:请求url

7)Response Code(响应代码):响应状态码,比如200、404等

8)Response Message(响应信息):响应信息

Jmeter变量的名称,存储提取的结果;即下个请求需要引用方法是${变量名}。

使用正则表达式解析响应结果,()括号表示提取字符串中的部分值,前后是提取的边界内容。

常用正则表达式:(.*?)表示匹配任意长度的任意字符,是最常用的正则表达式,基本能满足80%场景要求

正则表达式的提取模式。如果正则表达式有多个提取结果,则结果是数组形式,模板$1$,$2$等等,表示把解析到的第几个值赋给变量;从1开始匹配,以此类推。

若只有一个结果,则只能是$1$;有多个结果,可以使用$1$$2$方式取2个值。

正则表达式匹配数据的结果可以看作一个数组,表示如何取值:

1)0代表随机取值,默认

2)正数n表示取第n个值,(1:第一个值

3)负数表示提取所有符合条件的值,(-1:所有

匹配不到值的时,取该值;

勾选后,提取不到值时,则返回空字符串。

Field to check 详细样例

1)主体(body)

jmeter正则表达式用法(jmeter十五-正则表达式提取器)(2)

2)Response Headers(信息头)

jmeter正则表达式用法(jmeter十五-正则表达式提取器)(3)

3)Request Headers:请求信息头

jmeter正则表达式用法(jmeter十五-正则表达式提取器)(4)

4)URL

jmeter正则表达式用法(jmeter十五-正则表达式提取器)(5)

5)Response Code(响应代码)和Response Message(响应信息)

jmeter正则表达式用法(jmeter十五-正则表达式提取器)(6)

提取某个特定的值的例子

正则表达式提取器如下:

jmeter正则表达式用法(jmeter十五-正则表达式提取器)(7)

测试结果:

jmeter正则表达式用法(jmeter十五-正则表达式提取器)(8)

调试取样器

jmeter正则表达式用法(jmeter十五-正则表达式提取器)(9)

使用变量,也可以通过变量名_g直接进行提取,如下:

jmeter正则表达式用法(jmeter十五-正则表达式提取器)(10)

一条正则表达式匹配多个值

正则表达式提取器

jmeter正则表达式用法(jmeter十五-正则表达式提取器)(11)

测试结果:

jmeter正则表达式用法(jmeter十五-正则表达式提取器)(12)

jmeter正则表达式用法(jmeter十五-正则表达式提取器)(13)

1.1.1.4. 一条正则表达式有多个匹配值

正式表达式:

jmeter正则表达式用法(jmeter十五-正则表达式提取器)(14)

备注:多个模板( $1$$2$ )的时候,可以用空格、, 、. 、 - 连接模板

测试结果:

jmeter正则表达式用法(jmeter十五-正则表达式提取器)(15)

jmeter正则表达式用法(jmeter十五-正则表达式提取器)(16)

备注:在调试过程中可结果察看结果树和Debug sample来帮助分析结果。

,