Random 多线程中的Jmeter随机变量

Random 多线程中的Jmeter随机变量,random,jmeter,Random,Jmeter,我有一个Jmeter线程组,它在整个过程中多次使用变量uuid uuid定义为12345678-1234-4444-a123-${uu Random(1111111111111119999999)} 换句话说,它从一个固定的序列开始,然后将最后12个字符随机化 我想同时运行几个线程,这会产生以下问题 当我将uuid定义为线程组内的用户定义变量时,它会随机化一次,然后将该值用于所有线程。 如果我全局设置,同样的事情也会发生 完成后,我将同时运行数千个线程,因此我无法执行手动解决方案或读/写磁盘 有

我有一个Jmeter线程组,它在整个过程中多次使用变量
uuid

uuid
定义为
12345678-1234-4444-a123-${uu Random(1111111111111119999999)}

换句话说,它从一个固定的序列开始,然后将最后12个字符随机化

我想同时运行几个线程,这会产生以下问题

当我将
uuid
定义为线程组内的用户定义变量时,它会随机化一次,然后将该值用于所有线程。 如果我全局设置,同样的事情也会发生

完成后,我将同时运行数千个线程,因此我无法执行手动解决方案或读/写磁盘

有人有这方面的经验吗? 我已经浏览了文档和谷歌很长一段时间了,但似乎找不到解决方案


简而言之:我需要随机化一个变量,在整个线程组中使用该变量,并在多个同步线程中运行该线程组。变量在每个不同的线程中应具有不同的随机值。

假设您可以简单地使用配置元素:

Variable Name:     uuid
Output Format:     12345678-1234-4444-a123-000000000000
Minimum Value:     111111111111
Maximum Value:     999999999999
Per Thread (User): True
产生的价值

  • 可作为
    ${uuid}
    访问
  • 每个线程都是唯一的
  • 在每个线程的不同采样器调用流之间保留(在每次引用期间不重新生成)
  • 在线程组的每次迭代期间生成
e、 g

为上述架构实现的示例脚本:


根据
随机种子
字段描述:

默认值是以毫秒为单位的当前时间。如果你使用相同的种子 值设置为true时,您将获得与 按随机类别搜索线程

如果使用同一种子创建了两个Random实例,则 对每个方法调用的顺序相同,它们将生成 返回相同的数字序列

在实现具有高并发性的场景时要记住这一点(如下面的注释中所述)。 要解决此问题,您可以使用随机化种子,例如,
${{uu Random(MIN,MAX)}
作为随机函数的
种子
字段的值。

只需将

12345678-1234-4444-a123-${__Random(111111111111,999999999999)}
在需要的地方内联

若将其放入UDV组件中,那个么在线程启动之前,该值只分配一次。
根据jmeter文档,该行为正常。请仔细阅读。

Brilliant@Alies Belik。。。但我使用的是循环控制器,而不是不同的采样器。流程是:1。线程组1.1循环计数器1.1.1 SOAP请求我将随机变量放置在何处?您还可以使用随机变量从每个线程(用户)的预定义列表中选择字符串。我使用它为每个虚拟用户随机选择一个搜索关键字。我用逗号分隔的关键字列表创建了一个变量,然后在线程组中创建了一个随机变量,最小值为0,最大值为
${{uu javaScript('${search.keywords}.split('\,').length-1;)}
,并将其保存到变量keyword.index。然后,在我想使用随机选择的关键字的地方,我使用了
${uuu javaScript('${search.keywords}.split('\',')[${keyword.index}];)}
我一直在使用它,但刚刚通知一些线程仍然获得相同的值。我假设这是因为线程是在同一时间启动的,因此随机值以相同的毫秒生成,导致线程以毫秒为单位获得与随机值相同的值。有什么建议吗?嗨,TuukkaMustonen。谢谢你的来信。请查看上面的答案更新。简言之:看起来随机种子(通过例如
${{uuu Random(MIN,MAX)}
函数)提供了更好的结果。@AliaksandrBelik有趣的是,这对我来说没有任何区别。但是,如果我将每个线程(用户)设置为
False
,我会突然为每个线程获得唯一的UUID。所以,它的工作方式完全相反。。。我的
随机变量
位于
线程组
内,不确定这是否会影响它。

iteration: 1
    thread: 1
        sampler 1: VALUE_1-1
        sampler 2: VALUE_1-1
        ...
    thread: 2
        sampler 1: VALUE_2-1
        sampler 2: VALUE_2-1
        ...
    ...
iteration: 2
    thread: 1
        sampler 1: VALUE_1-2
        sampler 2: VALUE_1-2
        ...
    thread: 2
        sampler 1: VALUE_2-2
        sampler 2: VALUE_2-2
        ...
    ...
12345678-1234-4444-a123-${__Random(111111111111,999999999999)}