【问题标题】:Reducing Timer In Jmeter减少Jmeter中的计时器
【发布时间】:2019-10-07 04:22:34
【问题描述】:

我需要在 Jmeter 中实现以下动作

while(callAPIVariable 和 Timer 小于 30 秒) -- 调用 API -- 提取响应 -- 如果 --> 响应是“仍在等待完成”,则什么也不做。 -- 否则 --> 验证响应 ---> 将 callAPIVariable 设置为 false

我需要循环 while 循环直到 30 秒或直到 callAPIVariable 设置为 false

我可以实现 while 循环和所有功能,但我不知道如何将计时器添加到 while 循环中

【问题讨论】:

  • 你试过我的解决方案了吗?只需右键单击 -> 插入父级 -> 运行时控制器

标签: jmeter jmeter-plugins


【解决方案1】:
  1. 在 While 控制器前添加JSR223 Sampler 并将以下代码放入“脚本”区域:

    vars.putObject('start', System.currentTimeMillis())
    SampleResult.setIgnore()
    
  2. 使用下面的表达式作为While Controller的条件:

    ${__groovy((vars.get('callAPIVariable').equals('true') && (System.currentTimeMillis() - (vars.getObject('start') as long) < 30000)),)}
    

就是这样,上面的设置允许 While 控制器循环,直到 callApiVariable 值为 true 或 30 秒过去(无论先到哪一步)

varsJMeterVariables 类实例的简写,它提供对当前线程(虚拟用户)上下文中所有 JMeter 变量的读/写访问。查看 Top 8 JMeter Java Classes You Should Be Using with Groovy 文章,了解更多关于 Groovy 脚本可用的 JMeter API 简写的详细信息

【讨论】:

    【解决方案2】:

    您可以添加为父 Runtime Controller,运行时间设置为 30

    运行时控制器控制其子代运行多长时间。控制器将运行其子代,直到超过配置的运行时间。

    只需右键单击您的 While Controller -> Insert Parent -> Logic Controller -> Runtime Controller

    【讨论】:

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