為了更好地從技術上來規避系統上線後的風險,評估線上系統的真實能力,根據業務模型摸底線上能力,以提前應對可能發生的突發狀況。
綜上所述,效能壓測伴隨著系統開發、重構、上線到優化的生命週期,因此有效的效能壓測對系統的穩定性具有重要的指導意義,是系統生命週期中不可或缺的一部分。
效能壓測是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項效能指標進行測試。
通過模擬海量使用者的真實業務場景,全方位驗證業務站點的效能、容量和穩定性。從測試目的上效能壓測又可以劃分為負載測試、壓力測試、併發測試、配置測試以及可靠性測試。
基準測試
當我們拿到乙個效能測試專案的時候,我們會對這個系統架構做個了解,了解最好的方式是做乙個基準測試,先談談它的基本情況。所以會去定乙個小併發,比如5-10個人的併發,先去測一測,看它的響應時間,然後將此作為我們的基準。
負載測試
測試當負載逐漸增加時,系統各項效能指標的變化情況。為了獲取效能拐點,我們叫最佳效能。當達到這個點的時候,系統能力、極限能力是多少?這個通常用來做線上流量評估。
壓力測試
為了獲取極限效能指標。比如可以設定乙個3小時壓測場景,每10分鐘加10個使用者,那到3小時後,可能就是180個使用者了。這個時候觀察,在壓力不斷增大過程中系統的表現,獲得系統能提供的最大服務級別。
併發測試
通過模擬使用者併發訪問,測試多使用者併發訪問同乙個軟體、同乙個模組或者資料記錄時是否存在死鎖等效能問題。
配置測試
通過對被測系統的軟/硬體環境的調整,了解各種不同方法對軟體系統的效能影響的程度,從而找到系統各項資源的最優分配原則。
可靠性測試
容量測試
當業務越來越複雜的時候,比如一場大促,應該怎麼評估線上的效能?如何去做合理的擴容?這個就屬於容量測試範疇。
總的來說,效能壓測是在對系統效能有一定程度了解的前提下,在確定的環境下針對壓測需求進行的一種測試。
效能測試實施過程中關鍵的技術主要包括:
1、確定效能壓測目標
效能壓測目標可能源於專案計畫、業務方需求等
2.、確定效能壓測環境
為了盡可能發揮效能壓測作用,效能壓測環境應當盡可能同線上環境一致
3、確定效能壓測通過標準
針對性能壓測目標以及選取的效能壓測環境,制定效能壓測通過標準,對於不同於線上環境的效能壓測環境,通過標準也應當適度放寬
4、設計效能壓測
編排壓測鏈路,構造效能壓測資料,盡可能模擬真實的請求鏈路以及請求負載。
形成測試方案,組會評審,直至通過後方開始執行
5、執行效能壓測
借助效能壓測工具,按照設計執行效能壓測
6、分析效能壓測結果報告
分析解讀效能壓測結果報告,判定效能壓測是否達到預期目標,若不滿足,要基於效能壓測結果報告分析原因;調優後繼續第5步直至達到預期目標
7、輸出整體測試總結報告,涵蓋迭代測試步驟、結果、優化方案、最終結果等資訊
對於效能測試來說,工具並不是核心,分析、評估、找出效能問題才是核心,這些是主觀因素,工具是客戶因素。所以工具選擇時我們有幾個方面要考慮。
(1)專業、穩定、高效,工業級效能負載工具。
(2)簡單易上手,在測試指令碼上不用花太多時間。
(3)有技術支援,文件完善,不用在疑難問題上花費時間,集中精力在效能分析上。
(4)要考慮投入產出比。自研或者使用開源不一定比商業工具更省錢,因為要做技術上的投資,時間上的投資。
壓測工具
學習成本
安裝部署成本
是否免費
是否支援多協議
壓測結果是否能夠圖形化展示
是否支援tps模式
是否有鏈路、場景編排管理支援
是否支援場景錄製
apache bench低低
是否:針對http協議
否:命令列測試工具否否
否loadrunner高高
否是是否
是是jmeter高高
是是是否
是是pts低低否
是是是是
是根據不同的業務場景進行區分,如硬體效能可能需要在特定的實驗室開展,軟體在專網環境、公網環境下展開,具體情況具體分析。
一般分為如下幾種情況
1、公司內部有單獨的效能組負責效能測試,專案測試負責人提交效能測試需求,配合對方提供各種資料,開展效能測試工作,具體的方案、指令碼、執行、報告均由效能組負責
2、公司內部無單獨的效能組,需要專案組功能測試負責,此時方案、指令碼、執行、報告均由功能測試承擔,所謂能者多勞
3、公司內部專案無測試人員,此時開發人員承擔起測試人員的責任,負責方案、指令碼、執行、報告,這種情況相對較少
4、公司直接將測試外包給三方,由三方負責
Jmeter 效能測試指南
一篇寫得比較好的文章 效能測試是通過自動化的測試工具模擬多種正常 峰值以及異常負載條件來對系統的各項效能指標進行測試。負載測試和壓力測試都屬於效能測試,兩者可以結合進行。重要引數 一般來說,乙個系統的效能受到這兩個條件的約束,缺一不可。比如,我的系統可以頂得住一百萬的併發,但是系統的延遲是2分鐘以上...
效能測試基礎 效能測試基礎指南
企業對於效能測試工程師的要求 要求熟練掌握至少一種效能測試工具,並且能夠實現效能測試指令碼的開發。能夠獲取 分析 提煉效能需求。能夠根據效能需求去進行測試場景的設計和實現。能夠根據效能的需要進行必要的監控。能夠根據效能測試結果 集合監控 伺服器日誌等資料分析 定位效能瓶頸 能夠提出調優建議。能夠根據...
手遊效能測試指南
1 前言 隨著手遊3d型別遊戲增多,對機器資源占用越發高,但使用者手中硬體的提公升是乙個不可控且緩慢的過程,為了保證在盡量廣泛的機型上流暢執行,提高遊戲本身的潛在使用者群體,所以手遊客戶端效能審核工作就越發重要,如何做客戶端效能審核,如何快速,專業,準確的做客戶端效能審核是我們需要重點關注 且持續建...