Jmeter_正则表达式提取器使用
·
应用场景:
在一个线程组中,如果B请求需要使用A请求返回的数据,也就是我们常说的关联,将上一个请求响应的结果作为下一个请求的参数,则需要对A请求的响应报文使用后置处理器,这个时候我们就要用到正则表达式提取器
一、提取方法
1、新建A请求
- 添加线程组

- 添加HTTP请求

- 新建A请求,并添加察看结果树

2、查看提取的参数是否正确
-
通过察看结果树,提取想要的参数

-
通过RegExp Tester查看提取的参数是否正确
“Data”:"(.+?)"

3、通过正则表达式提取
- 添加正则表达式提取器

-
填写信息

-
说明:
(1)引用名称:下一个请求要引用的参数名称,如填写Data,则可用${Data}引用它
(2)正则表达式:
():括起来的部分就是要提取的
.:匹配任何字符串 +:一次或多次
?:不要太贪婪,在找到第一个匹配项后停止
(3)模板:用$$引用起来,$1$表示解析到的第1个值(如果有多个值,就添加多个:$1$$2$$3$):
一个值:
Match count: 1
Match[1][0]= "Data": "E944883D4BBEC7"
Match[1][1]=E944883D4BBEC7 --这里为第一个值
多个值:
Match count: 1
Match[1][0]="responseContent": ["14546523321", "45645454", "545643213"]
Match[1][1]=14546523321 --这里为第一个值
Match[1][2]=45645454 --这里为第二个值
Match[1][3]=545643213 --这里为第三个值
(4)匹配数字:0代表随机取值,1代表全部取值,通常情况下填0
4、B请求调用A请求返回的数据

二、正则表达式的举例说明
1、提取单个参数
"Data": "(.+?)"

2、提取多个参数
"Data": "(.+?)", "devies": "(.+?)"


3、数组提取方法
"responseContent": \["(.+?)", "(.+?)", "(.+?)"]


4、B请求调用A请求返回的多个参数
- 调用A请求返回的多个参数,就需要用到调试取样器(Debug Sampler)
首先添加调试取样器(Debug Sampler)

以下为正则表达式提取的参数(拿数组提取演示):
Data_g1 = 模板$1$的参数
Data_g2 = 模板$2$的参数
Data_g3 = 模板$3$的参数

B请求调用A请求的多个参数使用方法:


更多推荐



所有评论(0)