天天看点

Jmeter配置元件之随机变量(RandomVariable)

文章来源:https://cloud.tencent.com/developer/article/1504521

简介

允许用户创建一个在线程组范围之内都可以被引用的随机变量

Jmeter配置元件之随机变量(RandomVariable)
  • 变量名称(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,那么每个线程独享各自的随机数生成器

多线程运行的情况下:

假如Seed for Random function不为空,为手动输入的某个固定常量,

1) Per Thread(User)? 设置为True,那么每个线程都使用自己的随机数生成器,因为Seed相同,所以,每次运行脚本,每个线程获取到的随机数变量值是一样的。

2) Per Thread(User)? 设置为False,那么每个线程共享同一个随机数生成器,所以,每次运行脚本,每个线程获取到的随机数变量值是不一样的。

假如Seed for Random function不为空,即按默认,那么不管per Thread(User)?设置为True还是设置为False,生成的随机数都不相同

seed相同,per Thread 设置为True ,每个线程使用各自的随机数生成器,所以两个生成的随机数相同,要不同则设置为False

不管是多线程还是单线程,使用相同的Seed,运行相同次数,对应次数生成的随机数完全相同。

,也就是说,随机数生成器是根据Seed,然后按照某种算法一步一步生成随机数的,如果Seed一定,算法相同,那么对应步骤产生的随机数也就一样

推荐设置:

无特殊需求的情况下,建议Seed for Random function 不填,使用默认,Per Thread(User)?

设置为False