【问题标题】:Which timer do use?使用哪个计时器?
【发布时间】:2021-07-31 13:50:16
【问题描述】:

在 JMeter 中,我们有多个计时器 - 例如统一标准计时器、高斯随机计时器等。

在研究我的查询时 - 我发现了各种书籍和博客告诉我

  1. 如何在 JMeter 中添加定时器
  2. 定时器之间的内部公式/逻辑是什么。

我有点困惑,该使用哪一个?什么时候? 例如,如果我试图等待用户登录,哪个计时器更合适?制服?还是高斯?

【问题讨论】:

    标签: performance jmeter performance-testing


    【解决方案1】:

    根据A Comprehensive Guide to Using JMeter Timers

    统一随机计时器

    Uniform Random Timer 将线程暂停一个因数:

    • 在 0.0(含)和 1.0(不含)之间的范围内的下一个伪随机均匀分布值
    • 乘以“随机延迟最大值”
    • 加上“恒定延迟偏移”

    高斯随机定时器 Gaussian Random Timer 使用类似于 Uniform Random Timer 的方法计算线程延迟时间,但不是在 0.0 - 0.9 范围内均匀分布的伪随机值,而是使用正态(又名高斯)分布作为第一个参数公式。

    有几种生成正态分布值的算法,在 JMeter Marsaglia 中使用极坐标法,该方法采用 -1 到 1 范围内的下 2 个随机值 U 和 V,直到满足 S = U2 + V2 > 1 条件。一旦 S 被定义,它就会在公式中使用

    返回下一个伪随机高斯(“正常”)分布值。第一次调用该方法返回 X,第二次返回 Y,第三次重新开始并返回新的 X,以此类推。

    关于“使用哪个计时器以及何时使用” - 没有适合所有情况的“好”答案,您提到的计时器用于模拟think time,因为真实用户不会敲击应用程序不停地,他们需要一些时间在操作之间“思考”。所以决定权在你:

    • 一方面,真实用户在操作之间执行不同的延迟,因此如果您希望测试尽可能真实,最好将延迟随机化一点
    • 另一方面,负载测试需要可重复,因此使用 Constant Timers 以避免任何影响测试结果的随机因素是有意义的
    • 也许一个好主意是首先使用均匀或高斯随机计时器来模拟真实用户,然后为了regression testing 的目的切换到恒定计时器以实现结果可重复性目的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多