如何进行5万并发用户负载测试?
本文將介紹運行5萬并發用戶測試所需要的步驟(該測試用戶量最多可達200萬)。
步驟概述
第1步:編寫腳本
在開始之前,請先從JMeter Apache社區網站(http://jmeter.apache.org/)獲取最新的JMeter版本。
下載JMeter插件管理器(https://jmeter-plugins.org/wiki/PluginsManager/)。下載好JAR文件后,將其放入JMeter的lib/ext目錄。然后,啟動JMeter,并轉到“選項”菜單,找到插件管理器。
你可以通過多種方式獲取腳本:
如果你的腳本是通過錄制得到(如上面的步驟1和2),請記住:
第2步:使用JMeter進行本地測試
開始調試腳本,一個線程,進行一次迭代,使用View Results Tree、Debug Sampler、Dummy Sampler和打開的Log Viewer(以防出現JMeter錯誤)。
運行所有的場景(返回true和false),確保腳本可以按預期正常運行。
在使用一個線程成功運行腳本后,將線程數提升到10到20個,時間為10分鐘:
在腳本準備好之后:
第3步:BlazeMeter沙箱測試
如果這是你的第一次測試,應該閱讀一下這篇文章(http://community.blazemeter.com/knowledgebase/articles/65152-adding-a-new-jmeter-test-plan),了解如何在BlazeMeter中創建測試。
沙箱允許你對腳本和后端進行測試,確保BlazeMeter一切正常。
首先,按下灰色按鈕:選擇要控制的JMeter引擎,以便完全控制測試參數。
你可能會遇到的常見問題包括:
如果還有問題,請查看日志中的錯誤(你應該可以下載整個日志)。
沙箱配置可以是這樣的:
- 引擎:僅限控制臺(一個控制臺,0個引擎)
- 線程:50-300
- 加速時間:20分鐘
- 迭代:永遠
- 持續時間:30-50分鐘
你可以在加速期間獲得足夠的數據,分析一下結果,確保腳本按預期執行。
你應該看一下Waterfall/WebDriver選項卡,看看請求是否正常。這個時候你應該不會遇到任何錯誤(除非你是有意的)。
另外,還要看一下監控選項卡,看看使用了多少內存和CPU——這有助你完成步驟4,到時你可以嘗試設置每個引擎的用戶數。
第4步:使用一個控制臺和一個引擎設置每個引擎的用戶數量
在確信腳本可以在BlazeMeter中完美運行之后,我們需要弄清楚一個引擎可以支持多少用戶。
如果你能夠使用沙箱數據來確定,那就太好了!
我將為你提供一種方法來解決這個問題,無需查看沙箱測試數據。
將測試配置設置為:
- 線程數:500
- 加速時間:40分鐘
- 迭代:永遠
- 持續時間:50分鐘
接下來,使用一個控制臺和一個引擎。
運行測試,并通過監控選項卡監控測試引擎。
如果你的引擎沒有達到75%的CPU利用率或85%的內存使用率(可以忽略一次性峰值):
- 將線程數改為700,并再次運行測試;
- 提高線程數,直到獲得1000個線程或60%的CPU/內存使用率。
如果你的引擎超過了75%的CPU利用率或85%的內存使用率(可以忽略一次峰值):
- 注意第一次達到75%的時間點,然后查看當時有多少用戶。
- 再次運行測試,這次使用從上一次測試中獲得的用戶數量。
- 這一次,使用實際測試的加速時間(5到15分鐘是一個不錯的值),并將持續時間設置為50分鐘。
- 確保在整個測試過程中不要超過75%的CPU或85%的內存使用率。
為了安全起見,可以為每個引擎減少10%的線程數。
第5步:設置和測試集群
我們現在知道一個引擎可以支持多少線程。在這一步結束時,我們將知道一個集群(測試)可以支持的用戶數量。
集群是一種邏輯容器,只有一個控制臺和0到14個引擎。當使用超過14個引擎時,它實際上會創建兩個集群(控制臺數量會增加)并克隆你的測試。
每個控制臺最多14個引擎是基于BlazeMeter的測試得出的結果,可以確保控制臺能夠處理14個引擎的壓力。
因此,在這個步驟中,我們將采用步驟4的測試,只是將引擎的數量增加到14。
在測試運行時,請轉到監控選項卡,并驗證:
如果控制臺達到了這些限制,請減少引擎數量,并再次運行測試,直到控制臺處于這些限制范圍內。
在這個步驟結束時,你就會知道:
在負載結果圖下的聚合表中查找其他統計信息,獲取有關集群吞吐量的更多信息。
第6步:使用主從功能達到最大并發量目標
我們已經到了最后一個階段。
我們已經知道腳本可以正常運行,還知道一個引擎可以支持多少用戶以及一個集群可以支持多少用戶。
我們假設有這些值:
- 一個引擎可以支持500個用戶;
- 集群將有12個引擎;
- 我們的目標是進行5萬用戶的測試。
因此,我們需要創建50000(500 * 12) = 8.3個集群。
我們可以使用8個包含12個引擎(4萬8)的集群和一個包含4個引擎(另外2千)的集群。但是,最好可以像這樣分布負載:
我們將為每個集群使用10個引擎,而不是12個,這樣每個集群的用戶數可以達到10 * 500 = 5千。然后再使用10個集群,就可以達到5萬的規模。
這將有助于我們:
我們現在準備好用5萬用戶創建最終的主從測試:
針對5萬用戶的主從測試已準備就緒了。按下主測試的開始按鈕,將啟動10個測試(一個主測試和九個從測試),每個測試有5千個用戶。
你可以將每個測試(從測試或主測試)更改為來自不同的區域,具有不同的腳本/csv/其他文件,使用不同的網絡模擬器或不同的參數。
主測試和從測試的匯總報告將在主測試報告中的一個叫作“Master load results”的新選項卡中找到,打開這個報告就可以看到每個測試的結果。
英文原文:https://dzone.com/articles/how-to-run-a-load-test-of-50k-concurrent-users
總結
以上是生活随笔為你收集整理的如何进行5万并发用户负载测试?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 萌妹子的前端面试
- 下一篇: html常用标签详解4-列表标签