有需求如下:
对某分类列表分别上传随机个数的附件内容
由此想到可以使用jmeter自带的foreach控制器来实现,编写代码如下:
如图:两层循环,第一层由上方beashell获取大类列表,如下:
生成预选值务必从1开始,否则foreach控制器将忽略i=0的值从第二个开始取值
第二层循环同第一层。
使用此方案遇到的坑:
1、嵌套循环内部使用了多个beashell,内部包含大量自定义逻辑代码,需要勾选reset选项,已避免重复执行时jmeter使用前次记录,导致非首次运行不在执行beashell代码而报错
2、循环非首次生成小类的循环值个数M小于上次生成个数N时将导致jmeter叠加引用N-M个计数,即:例如
第一次循环小类生成key_1,key_2,key_3,key_4,此时循环key_1,key_2
第二次循环小类生成此时key_01,key_02,此时将循环key_01,key_02,key_3,key_4,此时引用,key_3,key_4将失败
所以在每次完成小类循环后需将小类随机值进行清空,并通过beashell的执行重新赋值