应用场景:
在一个线程组中,如果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请求的多个参数使用方法:
在这里插入图片描述
在这里插入图片描述

更多推荐