目录
- 一、后置处理器
- 1.json提取器
- 2.正则提取器
- 3.一个正则提取器,写多个正则提取式
- 二、举例说明
- 1.使用正则表达式提取请求的参数的时候,上面的类型选的是哪个?
- 2.一个正则提取器,写多个正则提取式,并使用提取出来的值
- 3.正则表达式是匹配多个结果吗?
- 三、记事本里使用正则表达式进行匹配
一、后置处理器:
- 1.json提取器
- 如果你的响应体为
json
格式,那么优先选用json
提取器。 - 如果想要提取请求中的内容(请求
url
、请求里面的某个参数、请求的头部内容)、响应的头部内容、或者响应体格式非json
格式,这个时候优先选择用正则提取器。 - json提取式:.节点名称.二级节点名称 ----- 绝对路径。..末梢节点名称 -------相对路径(推荐)。
- 一个json提取器写多个json提取式。
多个之间,用英文分号
;
作为分割符。 此时,一定要写默认值(default value)
,否则就会报错。
- 如果你的响应体为
- 2.正则提取器:
- 要检查的请求的响应字段。
- 正则表达式中引用响应数据中的变量名称。
- 正则表达式:左边界(正则式)右边界。
- 模板:数字对应正则式。例如: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