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取两个正则匹配到的所有数据

 

 附:正则提取规则

 

posted @ 2019-07-25 16:07  黑烧鱼  阅读(1494)  评论(0编辑  收藏  举报