在一个线程组中,有多个http请求采样器。我需要为每个请求发送一个号码。对于每个请求,此数字应该不同。当我使用Jmeter随机变量每次为每个请求获取一个随机数。我想在一个线程中我将在n个请求中调用此变量n次,它每次都会给出一个不同的数字,但它在每个调用中给出相同的数字。
请在每次在不同采样器的单个线程中需要时,建议获取随机数的方法。
答案 0 :(得分:1)
以下是选项:
有时JMeter的__Random()函数不能产生真正的“随机”值,好像它在同一时刻被调用多次(使用相同的种子) - 参见第2点 - 它将产生2个相等的值。解决方法是:
答案 1 :(得分:1)
就个人而言,我会使用UUID功能。
你可以在你的采样器中使用{__BeanShell(UUID.randomUUID())}来试试。
{__BeanShell(UUID.randomUUID())}
祝你好运,让我们知道你是如何继续的。
由于
答案 2 :(得分:0)
如果您需要在每个采样器的线程内生成随机数,请使用Random
函数。
${__Random(1,100)}
- 将生成1到100之间的随机数。
答案 3 :(得分:0)
您必须在线程组中应用一个随机生成器,如果要针对不同的采样器进行不同的触发,则必须为每个请求添加单独的随机生成器。
答案 4 :(得分:0)
使用“添加”>“配置元素”>“随机变量”创建随机数时,出现了类似的问题。像这样被使用-
log.info("******RandomNumber******");
log.info vars.get("p_randomNumber");
//20%
if(${p_randomNumber} <= 20){
vars.put("prof_cnt", "010DB");
vars.put("p_username","${p_prof10}");
//30%
}else if(${p_randomNumber} <= 50){
vars.put("prof_cnt", "015DB");
vars.put("p_username","${p_prof15}");
我们发现,已选中JSR223 PreProcessor复选框“如果可用,则缓存编译的脚本”,这使我们每次通过都获得相同的用户。取消选中该框,一切按计划进行(每次通过都会获得一个新用户)。