随着时间的推移,增加 jMeter 中的延迟和负载

发布于 2025-01-11 01:41:40 字数 592 浏览 0 评论 0原文

我试图在 jmeter 负载测试中增加延迟/暂停和负载,同时保持序列不变。例如 -

  • 最初 - 10 个样本(2 个获取请求 - a,b,a,b,a,b...)
  • 然后在 10 个样本之后,延迟/暂停 10 秒,然后是 20 个样本(a,b,a ,b,a,b...)
  • 在 20 个样本之后,再延迟/暂停 20 秒;然后 30 个样本 (a,b,a,b,a,b...)

等等。

这里的约束是 -

  • 获取准确的样本数量
  • 获取所需的延迟
  • 应该维护请求的顺序

关键部分控制器有助于维护线程的顺序,但仅限于正常的线程组。因此,如果我尝试最终的线程组来获得所需的可变延迟和负载,样本的顺序和数量就会变得混乱。

我已经尝试过以下操作 -

  • 连续运行测试组
  • 流量控制操作
  • 吞吐量控制器
  • 模块控制器
  • 交错控制器
  • 同步计时器(有和没有流量控制)
  • 为子项添加思考时间

有没有办法在 jMeter 中获取此输出?或者我应该选择脚本?

I'm trying to get an increase in delay/pause and load over time in jmeter load testing while keeping the sequence constant. For example -

  • Initially - 10 samples (of 2 get requests - a,b,a,b,a,b...)
  • Then after 10 samples, a delay/pause of 10 secs and then 20 samples (a,b,a,b,a,b...)
  • After the 20 samples, another delay/pause of 20 secs; then 30 samples (a,b,a,b,a,b...)

And so on.

Constraints here being -

  • Getting exact number of samples
  • Getting the desired delay
  • The order of requests should be maintained

The critical section controller helps with maintaining the order of threads but only in a normal thread group. So if I try the ultimate thread group to get the desired variable delay and load, the order and number of samples go haywire.

I've tried the following-

  • Run test group consecutively
  • Flow control action
  • Throughput controller
  • Module controller
  • Interleave controller
  • Synchronizing timer (with and without flow control)
  • Add think times to children

Is there any way to get this output in jMeter? Or should I just opt for scripting?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

东京女 2025-01-18 01:41:40
  1. 添加用户定义变量 并在那里设置以下变量:

    <前><代码>样本=10
    延迟=10

    “在此处输入图像描述"

  2. 添加 线程组并指定所需的线程数和迭代次数

  3. 添加线程组下的Loop Controller并设置“Loop计数”到 ${samples}。将您的请求放在循环控制器下

    “在此处输入图像描述"

  4. 添加 JSR223 Sampler 并将以下代码放入脚本区域:

    def delay = vars.get('delay') as long
    
    睡眠(延迟 * 1000)
    
    def new_delay = 延迟 + 10
    
    vars.put('delay', new_delay as String)
    
    def 样本 = vars.get('样本') as int
    
    def new_samples = 样本 + 10
    
    vars.put('samples', new_samples as String)
    

    “在此处输入图像描述"

  1. Add User Defined Variables and set the following variables there:

    samples=10
    delay=10
    

    enter image description here

  2. Add Thread Group and specify the required number of threads and iterations

  3. Add Loop Controller under the Thread Group and set "Loop Count" to ${samples}. Put your requests under the Loop Controller

    enter image description here

  4. Add JSR223 Sampler and put the following code into Script area:

    def delay = vars.get('delay') as long
    
    sleep(delay * 1000)
    
    def new_delay = delay + 10
    
    vars.put('delay', new_delay as String)
    
    def samples = vars.get('samples') as int
    
    def new_samples = samples + 10
    
    vars.put('samples', new_samples as String)
    

    enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文