正则的语法有很多,我们在使用只需使用常用的正则即可。
https://jmeter.apache.org/usermanual/regular_expressions.html
使用正则
下面演示一下 使用正则表达式提取器的方式来将token值提取出来。
在【用户登录】—【添加】—【后置处理器】—【正则表达式提取器】
根据服务器响应的结果,将token值提取出来设置为变量。
{"resultCode":200,"message":"SUCCESS","data":"2274acb7553aaa36a17a3f125c49ff1f"}
找到token值的特征
"data":"(.+?)"
引用token 变量
运行,可以看到token的变量值已经被提取到。
正则提取器使用技巧
搜索接口 服务器返回的结果中有商品的id,现在要提取商品的id,使用正则表达式提取。
找到数据特征
提取商品的id,通过观察发现,这个值的特征
"goodsId":10161
前面有 "goodsId":
这个特征,通过这个特征可以找到对应的商品。
就把复制出来,将要提取值使用 (.+?)
来代替。
"goodsId":(.+?)
测试表达式
设置完成之后,先进行测试。选择【RegExp Tester】
在测试模式下,发现提取到的值不对。
继续优化表达式,通过仔细观察,每个id的左边的特征 "goodsId":
右边的特征 ,
所以
"goodsId":10163,
将要提取的数据 设置为 (.+?)
表达式为
"goodsId":(.+?),
提取两个值
模板中使用 $1$$2$
在调用提取的对象那个的是
${title_g1} 对应 $1$
模板对应的值
${title_g2} 对应 $2$
模板对应的值
引用的时候 变量名后跟 _g2
第二个值
线程组-串联-正则.jmx
总结
使用正则表达式提取器 可以提取到对应的值。
功能跟json,jmespath 提取器原理一样。
只不过 json,jmespath 提取器使用的使用的时候,服务器返回结果必须是json格式的数据。
而 正则表达式提取器可以提取任意类型的服务器返回结果。