使用jmeter跑接口自动化掉过的坑

来源:互联网 发布:淘宝金牌拍档 编辑:程序博客网 时间:2024/06/04 19:49

近期,在使用jmeter跑接口自动化。由于模块众多,分别分配了几个人。所以刚开始的时候,每个模块都作为一个新的线程,线程下面会挂用户定义的变量,给该线程下会用到的一些变量赋值。
单个线程跑起来的时候,没有什么问题,一切ok。但今天,忽然发现,当多个线程跑起来的时候,数据就不一样了。
如图,做了一个测试的案例。
布局

左边是一个测试计划,先配置了默认请求地址,而后挂了两个一样参数的线程组。其中两个“用户的变量”的参数名称都是一样的 num_x (x包含于[1,2,3,4,5,6])。第一个线程组定义的参数值分别是1,2,3,4,5,6;第二个线程组定义的参数值分别是:11,22,33,44,55,66。
用户变量定义完了后,加了一个ForEach控制器,下面挂了一个http请求。如图:ForEach控制器配置(ForEach取参范围是 (a,b]!!!))
一些配置信息也做了适当描述。
ForEach
当我两个线程一起跑的时候。第一个线程组的所有请求参数值都是第二个线程组的定义的变量值。也就是说第二个线程组把变量数据都重写了。
如图,以第一个数据为例。
1
上图为第一个线程数据。
11
上图为第二个线程数据。

如果在规划时,规定都配置在一个用户的变量里,那么很好的避免了类似的问题。如果工程进行一半,遇到这样的事情,很是棘手。目前只找到一个方法,定义的参数如果其值若与先前的一致,那么可以暂时不管。定义的参数如果其值与其先前的值不一致,那么需要改其中部分的参数变量名,相应的,也需要更改设计到调用器参数名的地方。后续会google看看有没有更好的办法,目前没有查到很好的办法。

0 0