【问题标题】:Trouble creating a Timer in jMeter/Groovy在 jMeter/Groovy 中创建计时器时遇到问题
【发布时间】:2018-10-30 16:35:22
【问题描述】:

我在 csv 文件中有时间戳值,我正在将文件加载到 jMeter 的 ThreadgGoup 中。 我正在使用 JSR223 脚本来计算每个线程之间的延迟时间,但我无法做到这一点。

我想在没有现实生活数据的情况下启动我的线程,这就是我使用 csv 日志文件中的时间戳的原因。但我不知道如何为此配置方程式。 我正在从脚本中的 csv 读取时间戳,我知道等待时间应该等于当前时间戳值 - 前一个线程时间戳值,但我该如何实现呢?

def long wait=0;

// this returns the currents threads timestamp value from the csv
def long ts = Double.valueOf(vars.get("timestamp")).longValue();

wait = ts - {previous timestamp in csv}

return wait;

我正在使用 groovy 编写脚本,在我的线程组中我有 httpRequest 和 JSR223 计时器。有什么想法吗?

【问题讨论】:

  • @user7294900 我已经检查了那个帖子。那家伙正在使用一个恒定的计时器。我不想要那个。我正在尝试创建一个计时器,该计时器将根据它在 csv 文件中读取的时间戳更改每个线程的值。

标签: groovy jmeter stress-testing


【解决方案1】:

您应该将它传递给 sleep 方法,而不是返回等待:

 sleep(wait);

如需阅读 CSV,请参阅 answers

【讨论】:

    【解决方案2】:

    你的代码应该是:

     // this returns the currents threads timestamp value from the csv
     long ts = vars["timestamp"].toLong();
     long wait = ts - {previous timestamp in csv}
     return wait;
    

    我不明白这个值是从哪里来的:

    {csv 中的前一个时间戳}

    最后你需要了解计时器的工作原理:

    因此,如果您真的想在采样器之间应用它,请确保将计时器设置为 Flow Control Action 的子代:

    【讨论】:

      【解决方案3】:

      习惯于查看 jmeter.log 文件 - 通常它应该包含您的 Groovy(或 JMeter)测试不当行为或失败的原因。点击JMeter GUI右上角的黄色三角形可以打开Log Viewer窗口

      修改你的代码如下:

      if (vars.get('previousTimestamp') != null) {
          long ts = vars.get('timestamp') as Long
          long wait = ts - (vars.get('previousTimestamp') as Long)
          return wait
      } else {
          vars.put('previousTimestamp', vars.get('timestamp') as String)
          //return 1000
      }
      

      逻辑是:

      1. 如果定义了 previousTimestamp 变量 - “睡眠”表示前一个时间戳和当前时间戳之间的增量时间
      2. 如果未定义 previousTimestamp 变量 - 将当前 timestamp 变量存储为 previousTimestamp 并且不要休眠。您可以取消注释 return 1000 行以提供 1 秒的“默认”睡眠

      以防万一查看 Mathematical Functions and Converting Data Types in Groovy 指南,它应该让您更深入地了解您要实施的内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-26
        相关资源
        最近更新 更多