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