JMeter正则表达式提取器


1.正则表达式提取器的业务场景

如果有这样的情况:一个完整的操作流程,需要先完成某个操作,获得某个值或数据信息,然后才能进行下一步的操作(也就是常说的关联/将上一个请求的响应结果作为下一个请求的参数);

如在token的请求流程中,客户端输入账号与密码登录到服务端,服务端会返回一个tokenID给客户端,客户端需要进行下一步操作时需要提供tokenID给服务端 在Jmeter中,可以利用正则表达式提取器与JSON提取器来帮助我们完成这一动作。

JSON提取器之前以及分享过了,传送门:https://www.cnblogs.com/teangtang/p/15796079.html,这里我们只演示正则表达式提取器

2.正则表达式提取器

2.1正则表达式操作符

 
 
字符 作用
$ 匹配输入字符串的结尾位置。
() 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。
* 匹配前面的子表达式零次或多次。
+ 配前面的子表达式一次或多次。
. 匹配除换行符 \n 之外的任何单字符。
? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。
|将下一个字符标记为或特殊字符、或原义字符。  
^ 匹配输入字符串的开始位置。
\w 匹配字母、数字、下划线或汉字
{n} n 是一个非负整数。匹配确定的 n 次。
{n,} n 是一个非负整数。至少匹配n 次。
{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。
   
贪婪匹配和非贪婪匹配  
*、+限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。

 案例

例如我们要取出下面的数据
{
  "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyaWQiOiJRZVh2MlJLZFE4eVF1eWIyNFdSbVY5IiwiZXhwIjoxNjQyNTk0NTkzfQ.FCCsG4domXHZCzyb192pNJTZB-Nw2ae57IExnbpkTa8",
  "user": {
    "uid": "QeXv2RKdQ8yQuyb24WRmV9",
    "telephone": "15227132986",
    "username": "特昂糖",
    "email": null,
    "avator": "",
    "date_joined": "2022-01-09T11:12:25.772118+08:00",
    "is_active": true
  }
}
正则表达式
取到的值
"token":"(.*?)"
 
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyaWQiOiJRZVh2MlJLZFE4eVF1eWIyNFdSbVY5IiwiZXhwIjoxNjQyNTk0NTkzfQ.FCCsG4domXHZCzyb192pNJTZB-Nw2ae57IExnbpkTa8"
"uid":"(.*?)"
 
 "uid": "QeXv2RKdQ8yQuyb24WRmV9"
"telephone":"(.*?)"
 
 "telephone": "15227132986"
"date_joined":"(.*?)"
 
"date_joined": "2022-01-09T11:12:25.772118+08:00"
"username":"(.*?)"
 
"username": "特昂糖"
"email":"(.*?)"
 
"email": null
"avator":"(.*?)"
 
"avator": ""
"is_active":"(.*?)"
 
 "is_active": true

这里可以给大家分享一个正则表达式测试的地址:https://tool.oschina.net/regex

2.2模板

⽤$$引⽤起来,如果在正则表达式中有多个正则表达式(多个括号括起来的东东),则可以是$2$,
$3$等等,表示解析到的第⼏个值给user_id。例如:$1$表示匹配到的第⼀个值
$1$表示解析到的第1个值

2.3匹配数字

0代表随机取值,-1代表所有值,此时提取结果是⼀个数组,其余正整数代表第⼏个匹配的内容提
取出来。如果匹配数字选择的是-1,还可以通过 {user_id_2}来取第2
个匹配的内容。

2.4缺省值

如果参数没有取得到值,那默认给一个值让它取。可填可不填,看具体使用场景

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM