jmeter之从response中用正则表达式截取文本
1 接口调试背景
11月份做性能压测调试接口时,因为上一个请求的response中想要提取的是json字符串,使用了JSON Extractor提取器
本次性能压测,调试接口时,需要拿到的是:上一个请求的response返回的url中截取一部分字符串,因此JSON Extractor提取器就无法实现了,本次性能压测接口调试使用了正则表达式提取器
"url":"http:\/\/cop-dev-vip.svwsx.cn\/toComment?surveyId=1197781396647870465&surveyAnswerId=1204651998251966465"
本次要提取的数据:从上一个请求response返回的url中拿到surveyAnswerId的值1204651998251966465,作为下一个请求的入参
2 后置处理器-正则表达式提取器
在相应的请求上添加后置处理器-正则表达式提取器,正则表达式提取器界面参数如下:

2.1 各参数示意
Name of created variable: 引用变量
Regular Expression: 正则表达式,通过该正则表达式拿到变量的值
Template: 表示使用提取到的第几个值
$1$表示取第1个
$2$表示取第2个
$n$表示取第n个
Match No. : 0表示随机取值,1表示全部取值
Default Value:若通过正则表达式没有拿到值,则使用此缺省值
3 正则表达式
本次调试使用了正则表达式:surveyAnswerId=(.+?)"
表示,要提取以surveyAnswerId=开始,以分号"结尾的数据,也就是括号中的数据是需要拿到的,其中:
()表示 括号中的数据是要提取的内容
. 表示可匹配任意字符串
+表示可匹配1次或多次
?表示不要太贪婪,在找到第1个匹配项后即停止匹配。
通过debug sampler,可以看到已经拿到的值,可以继续进行调试了。

4 关于性能压测的其他
本人关于性能压测的其他随笔,日后会找时间迁移过来,地址先放在这里,方便查找