我一直在嘗試使用 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
提交
取消