Jmeter参数化-计数器
问题描述
在调试jmeter压测脚本的时候,需要准备大量消耗数据来应对高并发过程中,请求参数不可重复的情况
难点
- 不可重复 (用${_Random}容易产生重复数据)
- 数据量比较大 (用CSV Data Set Config更适合适量并可重复使用的参数化数据)
计数器(counter)
特点
- 可产生大量数据
- 不重复
- 递增
允许用户创建一个在线程组之内都可以被引用的计数器
计数器允许用户配置一个起点,一个最大值,增量数,循环到最大值,然后重新开始,继续这样,直到测试结束。计数器使用long存储的值,所取的范围是2^63——2^63-1
添加方式
应用
启动(start):给定计数器的起始值、初始值,第一次迭代时,会把该值赋给计数器
递增(Increment):每次迭代后,给计数器增加的值
最大值(Maximum):计数器的最大值,如果超过最大值,重新设置为初始值(Start),默认的最大值为Long.MAX_VALUE,2^63-1(如果持续压测,建议最好不要设置最大值)
Number format:可选格式,比如000,格式化为001,002;默认格式为Long.toString(),但是默认格式下,还是可以当作数字使用
引用名称(Reference Name):用于控制在其它元素中引用该值,形式:$(reference_name}
与每用户独立的跟踪计数器(Track Counter Independently for each User):全局的计数器,如果不勾选,即全局的,比如用户#1 获取值为1,用户#2获取值还是为1;
如果勾选,即独立的,则每个用户有自己的值:比如用户#1 获取值为1,用户#2获取值为2。
每次迭代复原计数器(Reset counter on each Thread Group Iteration):可选,仅勾选与每用户独立的跟踪计数器时可用;
如果勾选,则每次线程组迭代,都会重置计数器的值,当线程组是在一个循环控制器内时比较有用。