阅读 98

Jmeter正则表达提取器的使用(提取一组有关联的参数)

在使用jmeter做接口测试过程中,我们往往会遇到下面这种情况:一个接口返回的Response中,存在多组参数类型相同的数据,每一组数据都是有关联关系的,如下截图中所示,某个接口返回的Response中,都包含额以id、machineTypeName、machineTypeCode这三个字段组成的json串,这三个字段都是有一定的内部逻辑关系的,都是一一对应的(在数据库中,某个machineTypeCode一定对应的是唯一的id、machineTypeName)

image.png

现在我们需要将每一组(即每一组都包含id、machineTypeName、machineTypeCode)返回值取出来存在一个变量中(这个变量名我们命名为:machineTypeCode_id_machineTypeName),然后再通过这个变量单独取出这一组中的id、machineTypeName、machineTypeCode三个字段,最后通过if控制器进行判断(如取出的id字段如果为XXXX,那么就需要将这一组中的machineTypeName字段传递给下一个接口使用),以便给下一个接口传递关联的参数,针对这个场景,我们怎么用jmeter来实现呢?正如文章标题所示,Jmeter正则表达提取器可以轻松解决这个问题。
【操作步骤】
1、新增一个线程组,在线程组下面新增一个http请求(根据你的实际情况来配置这个请求)
2、在步骤1中的请求下面新增一个正则表达式提取器,配置如下所示
image.png

上图中正则表达式提取器中的参数含义如下:
(1)、引用名称:这个随便取一个名称,主要用于接受正则表达式提取器匹配到的结果
(2)、正则表达式:因为我这个接口返回的每一组参数都包含了id、machineTypeName、machineTypeCode三个字段,所以正则表达式里面分别写了三个匹配表达式,中间使用英文逗号(",")隔开
(3)、模板:因为我这里要接受三个值,所以用了3个模板,中间同样用英文逗号(",")隔开
3、增加一个"调试取样器",以便运行后查看运行过程中的参数值变化
4、运行脚本,我们看下正则表达式提取的结果值是什么样的
image.png

结果很清晰明了,三个值全部存放在了变量machineTypeCode_id_machineTypeName中,其中可以通过machineTypeCode_id_machineTypeName_g1、g2、g3分别获取我们想要的id、machineTypeName、machineTypeCode这三个字段
5、增加一个if逻辑控制器,在逻辑控制器中通过__jexl3函数进行判判断,如果取到的值与我的预期结果值一样,那么就执行其它的HTTP请求
image.png

image.png

好了,你学会了吗,如果对你有用,请点一个赞,谢谢!!!

作者:星空_Sparkle

原文链接:https://www.jianshu.com/p/330046f2225a

文章分类
后端
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐