后置处理器----正则表达式提取器
Regular Expression Extractor(正则表达式提取器)
使用正则表达式从服务器返回的响应中提取数据,后置处理器在采样器结束后执行,应用正则表达式,提取响应中的值,并保存到设置的变量中,供其他地方使用。
Name:此正则表达式的名称。
Apply to:应用范围,有些采样器还嵌套子采样器,可以在此处设置正则表达式是作用与主采样器和子采样器还是仅仅主采样器等。
Field to check:正则表达式检查的报文的范围。
1)Body(主体):响应报文的主体,常用。
2)Body(unescaped):响应报文的主体,替换了所有的html转义符,不建议使用。
3)Body as a Document:从各种类型的文件中提取文本,比较影响性能。
4)Response Headers:从响应头中提取。
5)Request Headers:从请求头中提取。
6)URL:从URL地址中提取。
7)Response Code:从响应代码中提取,如200。
8)Response Message:从响应信息中提取。
Name of create variables:用于存储Jmeter变量的名称,其他地方引用使用${变量名}。
Regular Expression:正则表达式。
Template(模板):
表达式中有多个正则表达式,表示提取第几个给变量,一般取第一个的话,就使用$1$。
Match NO.(匹配数字):
如果正则表达式中匹配的值多于一个可以在此处设置提取第几个,0代表任意一个,1代表第一个,2代表第2个。
Default Value(默认值):
正则表达式中没有匹配的值时,可以在此处设置默认值。
示例
HTTP请求响应内容:
{'bagNo': '94509771001', 'destDeptCode': '755AB'}{'bagNo': '94509772001', 'destDeptCode': '755CD'}{'bagNo': '94509773001', 'destDeptCode': '755EF'}
正则表达式:'bagNo': '(.+?)', 'destDeptCode': '(.+?)'
实验1
1、
模板:$1$ 匹配数字:0 ${value}取值:每次从94509771001,94509772001,94509773001三者中随机取一个
2、
模板:$1$ 匹配数字:1 ${value}取值:94509771001
3、
模板:$1$ 匹配数字:2 ${value}取值:94509772001
实验2
1、
模板:$2$ 匹配数字:1 ${value}取值:755AB
2、
模板:$2$ 匹配数字:2 ${value}取值:755CD
实验3
1、
模板:$1$$2$ 匹配数字:1 ${value}取值:94509771001755AB
2、
模板:$2$$1$ 匹配数字:2 ${value}取值:755CD94509772001
实验4
1、
模板:$0$ 匹配数字:1 ${value}取值:'bagNo': '94509771001', 'destDeptCode': '755AB'
2、
模板:$0$ 匹配数字:2 ${value}取值:'bagNo': '94509772001', 'destDeptCode': '755CD'