今天下午一个妹子使用Jmeter 遇到一个问题,关于正则表达式,找我帮忙解决,分享一下处理问题的思路,以供有需要的同学参考。
她的URL如下:
GET http://127.0.0.1:8080/or/order!detail.action?model.id=16856864168211e6abdd1078d2c706e0&&operType=100
这个请求是其中一个请求重定向的URL。
由于下面的请求要使用到这个model.id 她要提取此URL中的model.id
她写的正则表达式如下:
一、首先一看这个正则就是错的,有很多同学不是专业开发人员或许都没有怎么学过正则,那么我们可以选择“ 在线正则表达式 http://tool.oschina.net/regex/# ”,首先确认一下自己写的正则表达式是否是OK的,很多人说学正则像看天书,嘿嘿,其实还好吧,常用的规则就那么多,慢慢组合吧O(∩_∩)O哈哈~
二、既然获取的是重定向之后的URL,那么她这里的选择的匹配字段为Request Headers 也是错误的,应该选择URL。如图
三、正确的正则表达式为,如下图
四、这里具体的参数的含义自己研究,这里不再描述。这个妹子的需求是提取model.id,上面的正则使用${id}足以满足她的需求了,那么如果她还要使用operType的话,这个正则就涉及了分组正则表达式。如图
具体使用,如图:
测试结果如下图:
${id_g0}获取的是整个字符串
${id_g1}获取的是model.id
${id_g2}获取的就是operType
如果响应结果中有多条数据,我们可以采用,
${id_1_g1}获取第一模板的第一个数据
${id_2_g1}获取第一模板的第二个数据
...
${id_1_g2}获取第二模板的第一个数据
${id_2_g2}获取第二模板的第二个数据
...
这里就算处理好了,不知道你有没有get到呢, jmeter的关联就这么处理的,主要是处理问题的思路,下次遇到思路还是这么做啦!
如有问题可以联系 企鹅群:113097051