参考链接:
https://www.cnblogs.com/Testing1105/p/12743475.html
jmeter 使用random函数多线程运行时数据不会随机变化?_jmeter 线程组循环执行时 变量不变-****博客
1、如下图所示,需要对请求参数 autor 和phone进行随机参数化
2、目前有三种方式可以解决,第一种就是通过如下图所示,添加用户定义的变量组件;
3、再点击Tools-函数助手对话框,来给参数添加随机函数,
4、点击函数助手对话框 显示如下弹窗,输入最大值、最小值,点击生成按钮,复制函数字符串${__Random(1,999,)};
5、步骤4中的函数字符串复制到 用户定义的变量 参数对应的值中。
6、接口的该请求参数则需要使用${author}来代替,如下图。该方法有个缺陷就是无论是通过多线程还是循环控制器,该随机变量都只获取一次,因此还需要通过另外两种方式来解决这个问题。
7、如果需要每次请求接口,该参数的值都随机变化就需要直接将步骤4生成的函数字符串复制到该接口的参数中,如图所示。这样无论是多线程还是循环控制器每次该接口都会随机生成参数
8、除了将函数字符串直接添加到参数中外还有一种方式就是添加随机变量,添加过程如图所示。
9、在随机变量组件中输入变量名称、最小值、最大值、没线程(用户)?:选择True
每线程(用户)(Per Thread(User)?):如果设置为False,那么所有线程共享同一个随机数生成器,如果设置为True,那么每个线程独享各自的随机数生成器。
随机变量组件用法如下图所示
变量名称(Variable Name):用于控制在其它元素中引用该值,形式:$(variable_name}
输出格式(Output Format):可选格式,比如000,格式化为001,002,Minimum Value,Maximum Value都设置为1,Number format设置为000,那么格式化后,第一个参数值为001,第二个为002,……,以此类推,假设format设置为user_000,那么格式化后,第一个参数值为user_001,第二个参数值为user_002,...,以此类推。默认格式为Long.toString()
最大值(Minimum Value):生成的最小随机数
最小值(Maximum Value):生成的最大随机数
随机种子(Seed for Random function) :供随机数生成器使用的seed.如果为空,则使用默认的Random构造器
每线程(用户)(Per Thread(User)?):如果设置为False,那么所有线程共享同一个随机数生成器,如果设置为True,那么每个线程独享各自的随机数生成器
运行后该数据在1-1000000之间随机生成
10、接下来就跟步骤6类似,接口的该请求参数则需要使用${author}来代替。该方法也可以做到每次请求接口都会生成一个随机值。