【jmeter】分布式如何设置唯一变量值(二)
如果您在JMeter分布式测试中需要产生唯一值,可以使用以下两种方法:
1、Redis数据存储器:
Redis是一个开源、基于内存的、支持多种数据结构的NoSQL数据库。可通过使用Redis数据存储器来生成唯一值。详情请参见Redis数据存储器配置示例。
2、-Counter功能:
可以使用-JMeter的计数器功能生成唯一编号。
-
首先,添加一个计数器。 选择Test Plan -> Add -> Config Element -> Counter。
-
然后,在所有线程共享区域(例如用户定义的变量)中选择前缀和后缀,并将它们设置为一个参数名。 在线程组中,可以直接引用参数名称,而不是硬编码一个数字。
-例如,定义前缀:userID
和后缀:_cnt
,结果就应该是 userID_1
, userID_2
,userID3
等。
-最后,添加处理步骤以使用此计数器。 您可以使用BeanShell预处理程序或JSR223预处理程序,并参考以下代码片段:
String counterVarName = vars.get("userID"); int counterValue = Integer.parseInt(vars.get(counterVarName + "_cnt")); vars.put(counterVarName + "_cnt",String.valueOf(counterValue+1)); vars.put(counterVarName,counterVarName+"_"+String.valueOf(counterValue));
这个脚本将基于从计数器读取当前结构中的编号并将其增加1。 它然后将新值写回到相同的用户变量并添加在前缀后带一个下划线和当前数字计数。 最后,您可以使用$ {userID}变量引用此计数器值,并确保唯一性。
这两种方法都比较简单易学,任意选择一种即可。