目录
- 一、后置处理器
- 1.json提取器
- 2.正则提取器
- 3.一个正则提取器,写多个正则提取式
- 二、举例说明
- 1.使用正则表达式提取请求的参数的时候,上面的类型选的是哪个?
- 2.一个正则提取器,写多个正则提取式,并使用提取出来的值
- 3.正则表达式是匹配多个结果吗?
- 三、记事本里使用正则表达式进行匹配
一、后置处理器:
- 1.json提取器
- 如果你的响应体为
json格式,那么优先选用json提取器。 - 如果想要提取请求中的内容(请求
url、请求里面的某个参数、请求的头部内容)、响应的头部内容、或者响应体格式非json格式,这个时候优先选择用正则提取器。 - json提取式:.节点名称.二级节点名称 ----- 绝对路径。..末梢节点名称 -------相对路径(推荐)。
- 一个json提取器写多个json提取式。
多个之间,用英文分号
;作为分割符。 此时,一定要写默认值(default value),否则就会报错。
- 如果你的响应体为
- 2.正则提取器:
- 要检查的请求的响应字段。
- 正则表达式中引用响应数据中的变量名称。
- 正则表达式:左边界(正则式)右边界。
- 模板:数字对应正则式。例如:1
- 引用名称:随便取一个变量名称。
- 万能正则式:
.*?====除换行符不能匹配,其它的都能匹配。 .匹配除换行符以外的所有字符(包括中文、韩文、日文等)。匹配1次或多次(至少要匹配一次)。d相当于[0-9],来匹配数字的。加上,是至少要匹配一个的意思。w相当于[a-zA-Z0-9_],来匹配英文字母和数字的字符串。- 正则表达式中
[]{}有特殊的用途。 - 正则表达式可以用于日常日志、文本中查找信息。
- 3.一个正则提取器,写多个正则提取式:
- 分隔符用
(.*?)
- 分隔符用
绝大多数的正则表达式都是基于perl语言的,所以大多数语言里面的正则表达式都是通用的。
但是也存在一定的差异,比如java和python语言里面的正则表达式就有一些差异。
现在讲的是基于perl语言的正则表达式,所以这个和java中的正则表达式是一样的。
这个基于perl语言的正则表达式和python语言里面的正则表达式有些小区别。
参考文章:高级性能测试系列《14.响应的提取--json提取器:一个json提取器写多个提取式、正则提取器:万能正则式怎么用?》,更正该文章结尾的最后2行常用正则式为:d d [0-9] 和ww 英文字母或数字的字符串。
二、举例说明
1.使用正则表达式提取请求的参数的时候,上面的类型选的是哪个?

从url地址里面提取所需的请求的参数值:

http请求

配置正则表达式提取器
type=(.*?)&

成功提取请求的参数值
2.一个正则提取器,写多个正则提取式,并使用提取出来的值
注意: 写正则表达式的时候,英文双引号可别标反了。" "
1)在一个正则提取器中,写多个正则提取式
正则表达式:gqid":"(.*?)"(.*?)token":"(.*?)"
模板:13

匹配数字是0,意思是随机取了1个

运行结果
2)使用提取出来的值



运行结果
1代表g1,3代表g3。
3.正则表达式是匹配多个结果吗?
写多个的时候,模版中间的$不能少。

检查响应字段

例1:正则表达式中引用响应数据中的变量名称;匹配数字是-1,意思是取所有的值
正则表达式:id":(d ),(.*?)typeDesc":"(.*?)"

例1:运行结果

例2

例2:运行结果
三、记事本里使用正则表达式进行匹配
用notepad 打开代码文件,使用正则表达式进行匹配。
1.用于文本的查找:

要选择正则表达式哦
2.文本的替换:

所以,正则表达式不局限于jmeter中使用。
脚本链接:
链接:https://pan.baidu.com/s/1G7HRDSfrk8Y25ltzO2CiEg?pwd=1234 提取码:1234


