在成功使用 JMeter 分析我们平台的性能后,我收到了根据从去年日志中提取的每分钟事务数据模拟 24 小时负载的请求。
在这一点上,在 jmeter 中具有线程创建的静态特性,我想知道这是否容易实现。我与 jmeter-plugins.org 上的插件一起研究了常用插件,但我仍然找不到一种直接的方法来进行这种整形。
我正在寻找另一种方法来编写一个动态提供吞吐量整形计时器的 groovy 脚本,但我不确定这是否是正确的方法。
有什么建议么?
更新:我尝试了以下组合(也如 Alon 和 Dan 建议的那样): - 一个线程组,一个循环线程和一个 60 秒延迟计时器;该线程每分钟从 csv 读取下一分钟的请求数并将其传递给下一个线程组(使用 groovy 脚本和全局道具) - 第二个线程组具有固定数量的线程和一个恒定吞吐量计时器,即第一个线程组每分钟更新一次。
它部分工作,但这里的限制是负载/分钟在所有活动线程之间分配,因此即使负载请求同时发生变化,部分线程仍将等待执行。我认为,为了进行正确的模拟,应该有一种方法可以中断所有未在一分钟内执行的线程并重新启动。
因此,举一个具体的例子:我在第一分钟有 100 个请求,第二分钟有 5000 个请求(这是具有很大变化的真实数据)在第一分钟已经启动了 300 个线程(这是我接受的最大并发连接数),但是,因为它们执行速度非常快,为了满足计算的吞吐量,它们将延迟一分钟以上,因此下一分钟的 5000 个请求没有机会执行,因为许多线程仍在休眠。
所以我正在寻找一种在需要更多吞吐量时中断睡眠线程的方法。可能来自 Groovy 或通过修改一些 JMeter 代码。
谢谢, 迪克兰