Jmeter(四)正则表达式提取器

1.使用背景

在做接口测试的时候,可能需要将上一个请求的返回值中的数据作为下一个请求的参数,这个时候我们可以使用正则表达式提取器来解决这个问题。

如下:我需要提取这个接口返回值中的id的值,作为下一个接口passid的参数

         {
                "deviceIds": "115",
                "recogUnpassCode": "2010",
                "illegalCodes": "1001",
                "startTime": 1619280000000,
                "endTime": 1650902399000,
                "id": 37,
                "illegalName": "闯红灯",
                "projectId": 0,
                "roadName": "阿尔丁大街-黄河大街-北向南-20米-2",
                "timeRange": "00:00:00-23:59:59"
            },
            {
                "deviceIds": "115",
                "recogUnpassCode": "2010",
                "illegalCodes": "1001",
                "startTime": 1619280000000,
                "endTime": 1650902399000,
                "id": 38,
                "illegalName": "闯红灯",
                "projectId": 0,
                "roadName": "阿尔丁大街-黄河大街-北向南-20米-2",
                "timeRange": "00:00:00-23:59:59"
            }

 

2.操作步骤

第一步:添加正则表达式提取器

         http请求--->后置处理器--->正则表达式提取器(提取内容)

         线程组--->取样器--->Debug Sampler(调试取样器)--->在调试取样器上 添加察看结果树(查看提取的内容)

 

 

第二步:正则表达式提取

按照固定格式从字符串中提取数据,本例中正则表达式如下:

"id":(.+?),

"id":(.*?),

(1)引用名称:下个请求将要引用到的变量名;

(2)正则表达式:提取自己想要的内容的正则表达式,id表示需要取的变量名,小括号()表示提取,即对于你想要提取的内容需要用它括起来;

(3)模板:使用提取到的第几个值。因为可能有多个值匹配,所以要使用模板。从1开始匹配,以此类推;

(4)匹配数字:表示如何取值。0代表随机取值,1代表全部取值。(写几就代表取第几个值);

(5)缺省值:表示没有取到值的话,默认给它的值。建议填入引用名称,避免巧合情况下导致的数据问题。

 

第三步:在Debug Sampler(调试取样器)中查看效果

 

 

 

第四步:将正则表达式取到的值应用到下一个请求中

 

 

 

 

 

 

本文参考博客

Jmeter正则表达式常见问题

 

posted @ 2021-05-07 14:39  缘来似你  阅读(551)  评论(0编辑  收藏  举报