接口测试(十)jmeter——关联(正则表达式提取器)
一、正则表达式
- 常用的元字符
元字符:用来匹配相关字符
万能匹配表达式: .*?
所有log结尾的文件:*.log
代码 | 说明 |
---|---|
. | 匹配除换行符以外的任意字符 |
\w | 匹配字母或数字或下划线或汉字 |
\s | 匹配任意的空白符 |
\d | 匹配数字 |
\b | 匹配单词的开始或结束 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
- 常用的限定符
限定符:限定元字符匹配的次数
代码 | 说明 |
---|---|
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
- 示例
方法:找准左右边界,用万能表达式 .*?
示例1:
{"code":"0","msg":"操作成功","data":"496956"}
通过正则表达式获取 data,正则表达式:“data”:“(.*?)”}
在线验证网站:http://tool.oschina.net/regex/
示例2:
{"code":"0","msg":"操作成功","data":{"token_info":{"token_type":"Bearer","expires_in":"2022-12-14 18:43:17","token":"eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoiODkwOTAiLCJleHAiOjE2NzEwMTQ1OTd9.8WABoFYURRoSGO12oE8uO3xsKqeEktaaqvWR-VyKlSbsZbln9JSq8UNyT-uCO_pssa33_9jRoyRUc-c5suNy1Q"},"phone":"15219081119","user_name":"d1119","id":89090,"type":false}}
通过正则表达式获取 token,正则表达式:“token”:“(.*?)”}
示例3:
{"code":"0","msg":"操作成功","data":{"id":89090,"userName":"d1119","phone":"15219081119"}}
通过正则表达式获取 id,正则表达式:{“id”: (.*?),
二、正则表达式使用方式
- 在【HTTP请求-短信验证码】的子级下添加【正则表达式提取器】
- 【正则表达式提取器】
- 引用名称 :可自定义设置,引用方法 :${引用名称}
- 正则表达式:数据提取器,()括号里为你要获取的值。常见的形式(.*?)
- 模板: $ $ 对应正则表达式提取器类型
若只有一个正则表达式,一般填写 $ 1 $
引用组语法 | |
---|---|
1 1 1 | 引用组1 |
2 2 2 | 引用组2 |
0 0 0 | 引用整个表达式匹配的内容 |
- 匹配数字
匹配数字 | |
---|---|
-1 | 表示全部 |
0 | 随机 |
1 | 第一个 |
2 | 第二个 |
- 缺省值:匹配失败时的默认值ERROR,可以不写
3. 【正则表达式提取器】中【引用名称】为code,传入【HTTP请求-注册】请求体中