【发布时间】:2021-04-19 16:36:55
【问题描述】:
我正在监控在 GUI 模式下运行时从 jmeter 机器连接的连接时间和延迟,这在可接受的范围内。
即使我可以使用 GUI 模式执行负载测试,我们是否应该严格遵循非 GUI 模式?
我的目标是 250 TPS,并且能够实现这一目标。我增加了内存并监控 CPU,负载生成器的内存低于 60%。
我应该选择非 GUI 模式吗?
【问题讨论】:
标签: jmeter load-testing
我正在监控在 GUI 模式下运行时从 jmeter 机器连接的连接时间和延迟,这在可接受的范围内。
即使我可以使用 GUI 模式执行负载测试,我们是否应该严格遵循非 GUI 模式?
我的目标是 250 TPS,并且能够实现这一目标。我增加了内存并监控 CPU,负载生成器的内存低于 60%。
我应该选择非 GUI 模式吗?
【问题讨论】:
标签: jmeter load-testing
主要限制是queue 中的每个事件都由单个事件调度线程处理,该线程将充当 JMeter 端的bottleneck。
我的期望是你的“250 TPS”看起来像:
它应该看起来像:
因此,使用 Transactions per Second 侦听器(可通过 JMeter Plugins Manager 安装)检查您的负载模式如何
同时检查您的 JVM 的外观,尤其是当涉及到 garbage collection 时,可以通过 JVisualVM 完成,很可能您会看到相同的“电锯”模式
【讨论】:
你不需要关注JMeter best practices,但是
您可能会遇到实现特定目标(如 TPS)的问题
您的机器无法执行 GUI 或资源不足
您使用脚本或构建工具作为 Jenkins 执行 JMeter
另外,最好熟悉 JMeter CLI(非 GUI)及其report capabilities
JMeter 支持仪表板报告生成以从测试计划中获取图表和统计数据。
使用分布式测试也需要它
考虑使用分布式模式(或不使用)在多台机器上运行多个 CLI JMeter 实例
CLI 对于Parameterising tests 也很有用
然后可以在 JMeter 命令行上定义“循环”属性:
jmeter … -Jloops=12
【讨论】: