我在 JMeter 3.1 中使用 jsr223 采样器为 HTTP 请求数据生成密钥。问题是我的脚本使用加密算法,因此,当线程数量增加时,脚本持续时间也会增加(它与用户数量成正比增加)。所以我不能产生超过 5 次点击/秒。同时 CPU 利用率保持在较低水平(8 核和 32GB RAM)。你有什么想法如何增加命中/秒?
2 回答
您是否检查了 jsr223 元素上的缓存?
如果不是,那可能解释了您的问题。带有缓存检查的 JSR223 +groovy 在一个重要因素上优于 Beanshell。
是的,问题可能出在您的代码中,但您可以通过每隔 5 秒进行 3 个线程转储来检查 JMeter 在做什么?
还要确保您在测试时遵循最佳实践:
我观察到了同样的问题。在我的实验中,我发现 JSR223 + Groovy 的执行速度比大多数其他实现选项慢。由于 GC 活动,它对垃圾收集和 CPU 开销有很大影响。当我将 JSR223 从 Groovy 切换到 java 时,它仍然有很多锁定,并且线程不断被锁定在 beanshell bsh.name 上。
最后,我将所有 JSR223 测试元素替换为原始 beanshell 元素,例如 beanshell 预处理器/后处理器/断言和采样器。这很容易扩展到每秒数千个请求,所花费的时间小于 1 毫秒。
虽然我看过很多推荐 JSR223 + Groovy 的文章,但在我的情况下它不起作用。请切换到其中包含 java 代码的 beanshell 元素。它会起作用的。
请参考我的文章
JMeter 调优 - JSR223 + Groovy 与 JSR223 + Java BeanShell 与原始 BeanShell