Jmeter正则表达式提取器

Jmeter正则表达式提取器

一个Jmter常用的后置处理器

简单介绍

添加方式:Jmeter线程组,右键——> 后置处理器 ——> 正则表达式提取器

作用:提取前一个请求返回结果中的相应信息,给后续请求使用

Apply to部分:

  • Main Sample and sub-sample: 作用于父节点取样器及对应的子节点取样器
  • Main sample only:仅作用于父节点的取样器
  • Sub-samples only:仅作用于子节点的取样器
  • Jmeter Variable:作用于Jmeter变量

要检查的响应字段部分:

  • 主体:响应报文的主体

  • Body(unescaped):主体,响应的主体内容且替换了所有的html转义符

  • Body as a Document:从不同类型的文件中提取文本

  • 信息头:响应信息头

  • Request Headers:请求信息头

  • URL:统一资源定位符

  • 响应代码:http code,200,404,500等

  • 响应信息:响应信息

  • 引用名称:Jmeter变量名称,用来保存正则提取的结果,传给下个请求用

  • 正则表达式:正则表达式

  • 模板:从匹配结果中创建一个字符串,意思是提取到某一组值(正则结果可能是有几个组,g0,g1,g2…),$0$,表示提取g0组的结果;$1$表示提取g1组的结果;同时支持提取多组值:$0$$1$同时提取g0,g1组结果,并且拼接成一个变量值。

  • 匹配数字:匹配某一组值的第几个值,0表示随机,1表示提取第一个值,2表示提取第二个值;

  • 缺省值:匹配失败的默认值,常用于后续逻辑判断,例如:ERROR

示例

有两个接口,第一个接口是登录,第二个接口使用第一个接口返回信息中的id

登录接口返回信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
{
"result":true,
"data":{
"IsValid":true,
"SysParaInfo":null,
"ModuleList":[
{
"Id":"S010010",
"Name":"移动"
},
{
"Id":"S010020",
"Name":"排班"
},
{
"Id":"S010030",
"Name":"请假"
},
{
"Id":"S010040",
"Name":"加班"
},
{
"Id":"S010060",
"Name":"调休"
},
{
"Id":"S010070",
"Name":"审核"
},
{
"Id":"S010080",
"Name":"异常"
},
{
"Id":"S010380",
"Name":"调班"
}
],
"Uuid":"FDA50693-A4E2-4FB1-AFCF-C6EB07647825825",
"PunchTypeList":[
{
"PunchType":"APP_QR"
},
{
"PunchType":"APP_GPS"
},
{
"PunchType":"APP_BHT"
}
],
"gesturePwd":"",
"timeClassS":null,
"timeClassE":null,
"ServiceTime":"11:22",
"BackGroundVersion":"Y1",
"aghUrl":null,
"HeadImgUrl":null,
"EmployeeTypeId":null,
"phoneNumber":null,
"areaCode":null
}
}

使用工具测试,"Id":"(.+?)"提取出的结果为:

0 1
“Id”:”S010010” S010010
“Id”:”S010020” S010020
“Id”:”S010030” S010030
“Id”:”S010040” S010040
“Id”:”S010050” S010050
“Id”:”S010060” S010060
“Id”:”S010070” S010070

1

添加正则表达式提取器,配置内容:

1
2
3
4
5
应用名称:id
正则表达式:"Id":"(.+?)"
模板:$0$
匹配数字:1
缺省值:

配置项组合结果为:提取第0组结果的第一个值,也就是"Id":"S010010";运行查看结果,结果显示id提取值为:"Id":"S010010";符合预期。

2

添加正则表达式提取器,配置内容:

1
2
3
4
5
应用名称:id
正则表达式:"Id":"(.+?)"
模板:$1$
匹配数字:2
缺省值:

配置项组合结果为:提取第1组结果的第2个值,也就是S010020;运行查看结果,结果显示id提取值为:S010020;符合预期。

3

添加正则表达式提取器,配置内容:

1
2
3
4
5
应用名称:id
正则表达式:"Id":"(.+?)"
模板:$1$$0$
匹配数字:3
缺省值:

配置项组合结果为:提取第1组和第0组拼接成的结果的第4个值,也就是S010030"Id":"S010030";运行查看结果,结果显示id提取值为:S010030"Id":"S010030";符合预期。

以上,完~

文章目录
  1. 简单介绍
  2. 示例
    1. 1
    2. 2
    3. 3
|