Jmeter接口 变量参数化和两个嵌套循环(实例)

时间:2024-03-31 20:47:21

需求:一个接口里面有多个变量,我要把3个变量参数化,其中一个变量是币种,另两个变量分别是用户和账户,用户和账户同名,我要把每个币种空投给每个用户一定数量(相同)的金额。
接口:http://8.210.161.18:442/api/admin/adminDistTask
参数:{“id”:"",“currencyCode”:“ETH”,“intent”:“指定用户”,“users”:[{“userName”:“[email protected]”,“quantity”:“12”}],“isLocking”:false,“remark”:"",“userAndAmount”:“[email protected],12”,“distType”:“1”}
表现在Jmeter如下图:
Jmeter接口 变量参数化和两个嵌套循环(实例)
由于需要认证才能执行接口,所以要添加http信息头管理器,如下:
Jmeter接口 变量参数化和两个嵌套循环(实例)

一、实现上面需求,首先就是要进行变量参数化。
1、首先把对应的变量值参数化,参数化的各式就是把原来的值,写成类似这种各式:${canshu},其中canshu就是具体的参数化变量名,需要在下一步填入CVS数据文件设置里,具体参数化如下:
Jmeter接口 变量参数化和两个嵌套循环(实例)
2、添加逻辑控制器,循环控制器,依次线程组右键—添加—逻辑控制器—循环控制器,由于需要两个循环,所以需要添加两个,如下:

Jmeter接口 变量参数化和两个嵌套循环(实例)

3、添加CSV数据文件,线程组右键,依次添加—配置元件—CSV数据库文件设置,如下:
Jmeter接口 变量参数化和两个嵌套循环(实例)
4、由于需要两个文件参数,所以这里建立了两个CVS数据文件,分别是币种和用户,如下:
Jmeter接口 变量参数化和两个嵌套循环(实例)
5、建立两个参数txt文件保存到本地,然后设置对应的CSV数据文件,具体如下:

Jmeter接口 变量参数化和两个嵌套循环(实例)
可以看到,币种里面有12个币种12行,用户和账户里面有4个用户账户4行,设置的时候要注意,文件编码选择 UTF-8,多个变量,txt文件和CSV设置里用英文逗号隔开。

二、那么要实现上面的需求,如何把两个循环嵌套实现呢。

1、先看一下已经设置好的嵌套和从属各式,外循环CSV数据文件放在外循环里,内循环CSV数据文件放在内循环里,接口请求放在内循环里,如下:
Jmeter接口 变量参数化和两个嵌套循环(实例)
2、线程组的设置如下图:
Jmeter接口 变量参数化和两个嵌套循环(实例)

3、如果要把每个币种遍历所有的用户,就要把币种的循环放到外面,用户的循环放到里面,外循环12行数据,所以要把外循环的次数为永远,同时,CSV数据文件设置里的再次循环或停止线程分别设置为false和true,如下:
Jmeter接口 变量参数化和两个嵌套循环(实例)
4、内循环由于有4行数据,所以设置循环次数为4,内循环对应的CSV数据文件设置保持默认设置即可,不同于外循环的如上设置,请仔细甄别,如下图:
Jmeter接口 变量参数化和两个嵌套循环(实例)
5、执行结果,12行币种,4行用户账户,所以循环执行下来是48次,如下图:
Jmeter接口 变量参数化和两个嵌套循环(实例)