JMeter配置元件之随机变量(Random Variable)

一、背景

在接口测试时,经常会存在构造测试数据的情况,比如构造年龄、电话号码等等,所以一般会用到随机变量(Random Variable)配置元件。

组件的位置:测试计划或者线程组右键,Add->Config Element-> Random Variable

二、随机变量(Random Variable)

1、界面介绍

  • Name(控件名称):控件名称
  • Variable Name(引用变量名称):引用变量名称
  • Output Format(输出格式):输出格式。例如,“000”将生成至少3位数的数字,或“USER_000”将生成USER_nnn形式的输出。如果未指定,则默认使用Long.toString()生成数字。
  • Minimum Value(最小值):设置最小值
  • Maximum Value(最大值):设置最大值
  • Seed for Random function (随机种子):随机数生成器的种子。如果将每线程设置为true使用相同的种子值,则每个线程将获得与每个Random类相同的值。如果未设置种子,则将使用Random的默认构造函数。
  • Per Thread(User)(每个线程或用户):是否给每个用户设置。如果为False,则生成器在线程组中的所有线程之间共享。如果为True,则每个线程都有自己的随机生成器。

2、独享随机数生成器(常用)

这里每个线程独享各自的随机数生成器,最终生成的随机数,在每个线程组中都不相同。

  • 线程组内配置:这里将线程组内取样器循环3次,每秒生成2个用户

  • 取样器:打印线程组号,以及随机数字

log.warn("线程组号:"+ctx.getThreadNum()+",计数器的值:"+vars.get("var1"));
  • 随机变量配置元件
    • Seed for Random function (随机种子):空
    • Per Thread(User)(每个线程或用户): False

查看结果,执行两次后,发现每次的随机数都不同。

3、共享随机数生成器(不常用)

这里每个线程共享各自的随机数生成器,最终生成的随机数,在每个线程组中都相同。

  • 线程组内配置:这里将线程组内取样器循环3次,每秒生成2个用户

  • 随机变量配置元件

    • Seed for Random function (随机种子):10
    • Per Thread(User)(每个线程或用户): True

执行两次后,发现每次执行时,每个线程组的随机数都相同。

  • 线程组内配置:这里将线程组内取样器循环3次,每秒生成2个用户

  • 随机变量配置元件

    • Seed for Random function (随机种子):10
    • Per Thread(User)(每个线程或用户): False

执行两次后,发现每次执行时,每个线程组的随机数是不相同,但每次执行时的随机数与之前生成的随机数是相同的。

三、总结

序号 Seed for Random function (随机种子) Per Thread(User)(每个线程或用户) 运行结果 说明
1 False 运行2次,每次生成的随机数都不同 那么每个线程独享各自的随机数生成器
2 10 True 运行2次,发现每次执行时,每个线程生成的随机数都相同。 随机种子相同,所有线程或用户共享同一个随机数生成器
3 10 False 运行2次,发现每次执行时,每个线程生成的随机数是不相同,但每次执行时的随机数与之前运行时生成的随机数是相同的。 随机种子相同,所有线程或用户不共享随机数生成器
posted @ 2022-09-05 21:09  xyztank  阅读(601)  评论(0编辑  收藏  举报