前言:
正则表达式在Jmeter的用处非常广,包括常用的正则表达式提取器,还有其一些函数或者配置元件之类的。
元字符 | 意义 | 限定符 | 意义 |
---|---|---|---|
. | 任意单个字符 | + | 匹配至少大于1次 |
\d | 任意单个数字 | ? | 匹配0次或1次 |
[0-9] | 等价0-9 | * | 匹配0次或多次 贪婪匹配 |
[a-zA-Z] | 等价所有的大小写字母 | {n,}、{n,m}、{n} | 匹配限定次数 |
举个例子:
一般用法:元字符+限定符
匹配手机号:13800138001
写法如:\d{11} \d+ [0-9]{11} .{11} 等
可以搜索 在线正则表达式 网站查看匹配结果
正则表达式提取器
如果想在某个请求的响应结果里面拿到某个值,那么我们就可以使用正则表达式提取器。
以登录接口为例子,找到正则表达式提取器的位置操作步骤(提取uid):
响应结果:{"uid":20450674,"mail":"","areaCode":"+86","mobile":"13800138001","sid":"6395efe4e4ae2a746f7d495f5dd5d38c"}
1、确定接口的左右边界
2、写正则表达式:"uid":(\d*),
3、添加Debug Sampler(调试取样器)查看正则表达式提取是否正确
Debug Sampler(调试取样器)
① 先跑一个正则表达式
说两句:
1、模板,选择第一个匹配的字段,填$1$,用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是$2$$3$等等,表示解析到的第几个值给id。如:$1$表示解析到的第1个值;
2、匹配数字,0代表随机取值,-1表示全部,1第一个,2第二个;
3、缺省值如果参数没有取得到值,那默认给一个值让它取。可填可不填,看具体使用场景。
成功提取 uid
② 如果要跑两个怎么做
步骤
1、这次增加一个 提取sid 的正则表达式提取器
2、模板改为 $2$,因为“1”被刚刚的uid占用了
成功提取uid和sid
后记:
正则表达式其实是一门很高深的学问,文中提到的符号不过是冰山一角,想要精通正则表达式,你我还需要多多学习才行的哈~
网友评论