在jmeter里正则表达式用的位置比较多。一、正则表达式功能是从请求的响应结果中取到需要的内容作为下一个接口的入参从而实现关联。正则表达式提取器可配合Debug Sampler来查看各变量取值。要关联这个user_id:10145说明简单介绍一下Jmeter正则表达式提取器的使用方法。1、添加Jmeter正则表达式提取器在具体的Request下添加Jmeter正则表达式提取器Jmeter正则表达式在“后置处理器”下面2、Jmeter正则表达式提取器控制面板截图如下位置1名称及注释位置2正则表达式提取内容的范围。关于各字段的详细说明请查阅协议的相关说明位置3正则表达式提取的相关设置引用名称自己定义的变量名称后续请求将要引用到的变量名,如填写的是user_id后面的引用方式是${user_id}正则表达式提取内容的正则表达式相当于lr中的关联函数【() 括起来的部分就是需要提取的对于你要提的内容需要用小括号括起来】【. 点号表示匹配任何字符串】【 一次或多次】【 在找到第一个匹配项后停止】模板用$$引用起来如果在正则表达式中有多个正则表达式多个括号括起来的东东则可以是$2$$3$等等表示解析到的第几个值给user_id。例如$1$表示匹配到的第一个值匹配数字0代表随机取值-1代表所有值此时提取结果是一个数组其余正整数代表第几个匹配的内容提取出来。如果匹配数字选择的是-1还可以通过${user_id_1}的方式来取第1个匹配的内容${user_id_2}来取第2个匹配的内容。缺省值正则匹配失败时取的值问题1(.?) 与(.*?) 区别(.?) 匹配一个以上(.*?) 匹配0个及以上要取的值是空值的时候可以取到比如labelId:; 要取labelId的值使用(.?) 匹配不到值使用(.*?) 就可以取到值为空对应写法为 labelId:(.*?) ;如果正则中有转义怎么办id?labelId:1290 正则写法 id\?labelId:(.?)labelId\:\1290\ 正则写法 labelId\\:\\(.?)\\labelId:(1290), 正则写法 labelId:\((.?)\),问题2一个表达式匹配多个参数调用方法${list_g1} ${list_g2}例如假设:引用名:RefName正则表达式:name”(.?)” value”(. ?)”模板:$1$$2$以下的变量将被设置:RefName:file.namereadme.txtRefName_g:groups的数量在此为2RefName_g0:name”file.name” value”readme.txt”RefName_g1:file.nameRefName_g2: readme.txt3、一种不是很常见的情况是有若干个匹配数据使用正则表达式测试器测试的结果如下若希望取到17这个值则对应的是第二列第二行$2$, ${javawd_g2}如果是第三列第四行的数据则对应的是$3$,${javawd_g4}这种情况在Jmeter正则表达式提取器和HTTP请求中的设置如下