我一直在尝试使用 JMeter 为 10000 个用户运行性能测试,每秒并发 1000 个用户,问题是我永远无法在部署在 Azure 中的服务器上达到 1000 个用户的吞吐量。我想知道我做错了什么,非常感谢任何帮助谢谢?我的用户定义变量:users ${__P(USERS,10)}
seconds ${__P(SECONDS,3600)}
scale ${__P(SCALE,2)}
env ${__P(ENV,preprod)}
wait falsejmeter -n -t ./src/test/branchHub/agentAuthentication.jmx -JUSERS=1000 -JSECONDS=5 -JENV=preprod -JSCALE=0.2 -JLOOPS=3 -JPRODUCTS=bill -JCERTINI=1 -Djavax.net.ssl.keyStore=./src/main/resources/certificates/preprodStore.jks -Djavax.net.ssl.keyStorePassword=performance -Jhttps.use.cached.ssl.context=true -q ./src/test/user.properties -l logs/summary/394output.jtl -e -o logs/reports/394这是控制台日志16:14:10 创建摘要器 16:14:10 使用 ./src/test/branchHub/agentAuthentication.jmx 成功创建树 16:14:10 开始测试 @ Fri Jun 28 15:14:10 UTC 2019 (1561734850233) 16:14:10 等待端口 4445 上可能出现的 Shutdown/StopTestNow/Heapdump 消息 16:14:32 摘要 + 17 in 00:00:20 = 0.8/s Avg:1330 Min:77 Max:2174 Err:1 (5.88% ) Active: 7 Started: 20 Finished: 13 16:15:05 summary + 29 in 00:00:30 = 1.0/s Avg: 1596 Min: 1443 Max: 2868 Err: 0 (0.00%) Active: 7 Started: 49完成:42 16:15:05 摘要 = 00:00:50 中的 46 = 0.9/s 平均:1498 最小值:77 最大值:2868 错误:1 (2.17%) 16:15:37 摘要 + 00:00 中的 30: 30 = 1.0/s 平均值:1674 最小值:1252
2 回答

杨__羊羊
TA贡献1943条经验 获得超7个赞
查看Active: 7
汇总器输出,您似乎没有超过 7 个活跃用户。
鉴于您只有 2 个采样器并且在线程组下只定义了 3 个循环,我的期望是您根本没有达到所需的并发性,因为线程在 ~3 秒内完成请求并在其他线程尚未启动时被关闭。
尝试将循环计数设置为-1
或勾选“永远”框 - 这样您应该能够实现所需的并发性。查看JMeter 测试结果:为什么实际用户数低于预期以获取更多详细信息。
还要确保遵循JMeter 最佳实践,因为默认 JMeter 设置可能不适合产生 10000 个并发用户,因此您需要对其进行调整以获得最佳性能。如果调整没有帮助 - 您将不得不进行分布式测试。

神不在的星期二
TA贡献1963条经验 获得超6个赞
您已经创建了一个包含 1000 个线程的线程组。除非您的 Azure 实例有 1000 个 vCPU,否则这将导致过多的上下文切换,并且 JVM 将花费更多时间在线程之间切换而不是执行工作。
创建一个包含较少线程的线程组并在单个线程中重复测试操作,或者向您的实例添加更多 vCPU。
添加回答
举报
0/150
提交
取消