以前的博客介紹過關於性能測試類型的內容,在性能測試中有一種測試類型叫作基準測試。這篇博客,就聊聊關於基準測試的一些事兒。。。html
一、定義web
經過設計合理的測試方法,選用合適的測試工具和被測系統,實現對某個特定目標場景的某項性能指標進行定量的和可對比的測試。數據庫
二、特質服務器
①、可重複性:可進行重複性的測試,這樣作有利於比較每次的測試結果,獲得性能結果的長期變化趨勢,爲系統調優和上線前的容量規劃作參考。架構
PS:這種特質是爲了知足基準測試的平常輪詢須要。併發
②、可觀測性:經過全方位的監控(包括測試開始到結束,執行機、服務器、數據庫),及時瞭解和分析測試過程發生了什麼。工具
③、可展現性:相關人員能夠直觀明瞭的瞭解測試結果(web界面、儀表盤、折線圖樹狀圖等形式)。性能
④、真實性:測試的結果反映了客戶體驗到的真實的狀況(真實準確的業務場景+與生產一致的配置+合理正確的測試方法)。測試
⑤、可執行性:相關人員能夠快速的進行測試驗證修改調優(可定位可分析)。spa
三、前置條件
基準測試必定要在可控的條件下進行。
面對日益複雜的系統和不斷增加的用戶數,以及性能測試可能涉及到的多個業務系統,只有作到基準測試所涉及的業務場景、系統架構、測試環境等在可控狀態下,
才能獲得相對準確的結果,爲容量規劃、缺陷定位、系統調優提供參考和依據。
四、意義
①、爲容量規劃肯定系統和應用程序的極限;
②、爲配置測試的參數和配置選項提供參考依據;
③、爲驗收測試肯定系統是否具有本身所宣稱的能力;
④、爲性能基線的創建提供長期的數據統計來源以及比較基準;
五、前提
①、測試目的:明確測試的目的,測試什麼?用什麼測試方法、策略?
②、測試環境:被測系統的環境是什麼,SIT仍是UAT活着PAT?
③、測試限制:要執行測試有哪些限制因素,該如何解決?
④、風險因素:測試可能存在哪些風險,解決方案是什麼?
⑤、結果分析:對測試結果如何分析?測試產生的數據如何分析、定位?
六、原則
①、測試策略:穩定且連續的工做負載,屢次運行,看測試結果數據的正態分佈趨勢,儘可能取平均值;
②、數據統計:真實環境下測試數據的平均值、峯值各是多少,取值的維度;
③、差別風險:明確存在哪些風險,風險對測試結果的影響,是否忽略;
④、特殊狀況:有哪些特殊狀況,是否有對應的解決方案(好比支付場景中的支付服務調用,是否採用擋板等);
七、須要考慮的因素
交易配比:某些業務場景,一個流程包含多個事務,在模擬併發中,不一樣的事務各自的佔比;
突發性的讀寫操做:某些特殊業務場景,會有短時的大流量衝擊或者請求數量驟減,該如何模擬(浪涌測試);
系統配置:不一樣環境的系統配置不一樣,測試結果如何換算、如何對比?
測試時長:測試執行過程當中,運行多長時間,不一樣交易運行的時間分配等;
結果展現類型:平均值、峯值、百分比值如何展現,如何對比?
成功/失敗佔比:每次測試過程當中,成功和失敗的事務佔比統計;
是否可重現:如測試過程當中出現報錯或某些異常狀況,是否能夠重現?
是否可對比:是否有其餘測試工具或者測試結果進行對比(儘可能屢次執行測試,進行測試結果對比:標準方差、正太分佈瞭解一下?)?
八、簡單可行的方法
逐漸增長系統負載是一個肯定系統所能處理的最大吞吐量的簡單辦法,也是尋找系統性能拐點的可行策略(階梯式加壓測試)。
九、重點
基準測試的工做重點是統計分析:能夠從如下幾個維度去進行統計:
①、選擇合適的測試工具,設定合理的測試方法以及須要確認的系統性能指標;
②、選擇不一樣的測試工具,對測試結果進行對比,選擇穩定且能反應系統真是性能表現的結果;
③、屢次執行測試,收集大量的測試數據集和指標;
④、從不一樣維度解讀分析數據,生成報告。