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(调试取样器)中查看效果
第四步:将正则表达式取到的值应用到下一个请求中