Jmeter之正则表达式取样器~案例详解
正则:按照规则提取数据
场景:A请求获得的响应数据,需要作为B请求的提交数据(eg:A:购物车页面→B:下单(正则提取购物车的商品信息,数量信息等))
常用正则表达式:(.+?)
辅助:添加Debug Sampler,进行调试
1.添加“正则表达式取样器”
2.常用的数据设置
●引用名称:变量名,给提取到的参数一个变量名
●正则表达式:(.+?) 括起来的部分就是要提取的。括号里面的就是正则匹配的规则
●模板:$1$取第一个正则表达式的值
●匹配数字:0代表随机,1代表第一个数据,2表示第二个....以此类推(正则提取后,可能有多个数据)
●缺省值:默认值,没有提取到数据就给个默认值,可以自定义。
以上描述可能比较难理解和实践,看下案例分析,迅速了解haha~
❤案例
请求获得的数据如下图,并对auther,link进行提取
→案例分析1
下图中正则表达式填写的是:"author":"(.+?)"
注意!!!需要提取的部分需要有头有尾限制住。例如:"author":"(.+?) 这就是错误的。必须前后限制住"author":"(.+?)"
表示在整个响应数据中,提取author作者信息,()括起来的部分就是要提取的。括号里面的就是正则匹配的规则
只有一个正则表达式,所以模板为$1$,
提取匹配到的第一个作者,所以匹配数字为1,
当没有获得数据时,给变量赋值:author=error,
Debug Sampler中显示,成功提取数据并赋值:author=陈奕迅
需要提取匹配到的第二个作者时,匹配数字为2
→案例分析2
下图中正则表达式填写的是:"author":"(.+?)","link":"(.+?)" —— 多个正则用英文逗号隔开
有两个正则表达式,采用$2$后,author取第二个正则匹配到的数据
采用$1$$2$后,author取两个正则匹配到的所有数据
附:正则提取规则