近期接觸的項目,進行了比較多的性能測試,就性能測試的步驟做一下總結和分析,也希望對以后的工作有益。
性能測試,是一種"正常"的測試,主要是測試正常使用時,系統及時性(響應時間、吞吐率)是否滿足要求,同時可能為了保留系統的擴展空間進行一些稍稍超出"正常"范圍的測試。
常用軟件:HP LoadRunner
系統性能測試中的幾大步驟:
1、明確測試目標;了解性能測試需求;
2、編寫性能測試計劃;
3、分析性能測試需求;
4、編寫性能測試方案、設計測試場景;
5、相關資源準備(硬件資源、軟件資源);
6、執行性能測試并收集測試結果;
7、分析結果;
8、系統調優及再測試;
關于步驟的解析:
1、明確測試目標;了解性能測試需求;
性能測試啟動階段要確定測試的負責人和組織結構。明確測試的總體目標和范圍,確認資源情況。獲取性能測試需求:業務列表、性能指標、測試環境、數據量等詳細需求。為策劃規劃做準備。
性能調優是是無止境的,所以在測試之前應確定一個明確性能調優目標,作為基準。
2、編寫性能測試計劃;
性能測試計劃中包含測試目的和測試目標的相關信息,還確定了實施和執行測試時使用的策略,方法;同時還要確定測試工具、所需資源、日程表計劃等。
3、分析性能測試需求;
性能測試需求分析主要目的是要找出可能造成系統瓶頸的因素,為后面的測試場景設計提供依據。影響系統性能有很多種原因,在此應關注如下幾個關鍵點:
A 環境配置性能需求:
應用配置需求:例如應用整體框架、涉及到哪些第三方的組件、應用層與數據庫層的接口、使用了什么數據庫等;
B 系統配置需求:例如用戶客戶端配置、客戶端與服務器端的網絡配置、應用服務器或數據庫服務器操作系統等等;
C 服務器性能指標要求:
預期的在上線系統中服務器資源使用情況、吞吐量、軟件運行情況等等。
D 系統設計需求:
系統架構、系統的技術實現、與其它系統接口關系及其技術實現、本系統測試數據及其與相關系統測試數據關系等等。
E 工作負載需求:
用戶使用情況需求:例如用戶分布情況;哪些模塊用戶使用比較頻繁;在用戶操作的數據有哪些特點等等;這些需求需要具體定位到系統的哪些功能模塊、功能點;
F 客戶端性能指標要求:
請求響應時間分布;請求的準確率等等。
4、編寫性能測試方案、設計測試場景;
明確測試目的和測試的范圍以及項目功能需求,分析測試環境中可能出現瓶頸的位置,據此來編寫性能測試方案。在設計測試場景時,盡可能把測試按照類型劃分,每個類型下又設計N個場景。一般來說測試中會使用的一些場景:
預期性能指標測試、單一功能加壓測試、復雜場景測試、壓力測試、負載測試、大數據量測試、配置測試等。根據對業務數據的分析,設計與真實情況類似的場景,來測試系統的整體性能。
5、相關資源準備(硬件資源、軟件資源);
硬件資源包括被測應用的主機和應用環境的部署,壓力發生環境的準備和網絡環境的部署以及監控系統環境的部署等。
軟件資源包括測試程序的開發,擋板的開發,測試腳本的編寫、測試數據的準備和參數化數據在各測試用例中的調整、數據分析準備等。
6、執行性能測試并收集測試結果;
在測試執行前,需要確認用例和場景、測試環境、測試數據、測試腳本、測試工具監控工具的正常。
在測試過程中,每個場景的執行和使用的用例都要做記錄,并且做好結果的搜集,關鍵數據要做截圖。
在測試完成后,注意數據的恢復和備份、環境的清理、結果的整理和相關文檔的生成。
7、分析結果;
測試結果的分析其目的主要是根據測試獲取到的數據去判斷造成系統出現瓶頸的位置,挖掘造成系統瓶頸的原因。當然這個過程是技術含量最高的一環。
8、系統調優及再測試
根據測試的分析結果,有針對性的去進行優化。比如:針對緩存上的問題,可以設置多級緩存;針對數據傳輸的問題,可以把大數據塊分塊傳輸,減小網絡傳輸;如果是硬件資源的問題,可以增加更多的硬件資源;如果是服務器的應用訪問壓力問題,還可以做服務器應用的負載均衡水平擴展。在系統調優后,還可以再行測試以便達到更好的效果和切中指標。
總之,性能測試是個繁瑣和細致的工作過程,測試工具在測試中也只是一個輔助性的作用,而對測試得到的數據進行分析進而準確的定位問題和系統瓶頸才是關鍵。
性能測試,是一種"正常"的測試,主要是測試正常使用時,系統及時性(響應時間、吞吐率)是否滿足要求,同時可能為了保留系統的擴展空間進行一些稍稍超出"正常"范圍的測試。
常用軟件:HP LoadRunner
系統性能測試中的幾大步驟:
1、明確測試目標;了解性能測試需求;
2、編寫性能測試計劃;
3、分析性能測試需求;
4、編寫性能測試方案、設計測試場景;
5、相關資源準備(硬件資源、軟件資源);
6、執行性能測試并收集測試結果;
7、分析結果;
8、系統調優及再測試;
關于步驟的解析:
1、明確測試目標;了解性能測試需求;
性能測試啟動階段要確定測試的負責人和組織結構。明確測試的總體目標和范圍,確認資源情況。獲取性能測試需求:業務列表、性能指標、測試環境、數據量等詳細需求。為策劃規劃做準備。
性能調優是是無止境的,所以在測試之前應確定一個明確性能調優目標,作為基準。
2、編寫性能測試計劃;
性能測試計劃中包含測試目的和測試目標的相關信息,還確定了實施和執行測試時使用的策略,方法;同時還要確定測試工具、所需資源、日程表計劃等。
3、分析性能測試需求;
性能測試需求分析主要目的是要找出可能造成系統瓶頸的因素,為后面的測試場景設計提供依據。影響系統性能有很多種原因,在此應關注如下幾個關鍵點:
A 環境配置性能需求:
應用配置需求:例如應用整體框架、涉及到哪些第三方的組件、應用層與數據庫層的接口、使用了什么數據庫等;
B 系統配置需求:例如用戶客戶端配置、客戶端與服務器端的網絡配置、應用服務器或數據庫服務器操作系統等等;
C 服務器性能指標要求:
預期的在上線系統中服務器資源使用情況、吞吐量、軟件運行情況等等。
D 系統設計需求:
系統架構、系統的技術實現、與其它系統接口關系及其技術實現、本系統測試數據及其與相關系統測試數據關系等等。
E 工作負載需求:
用戶使用情況需求:例如用戶分布情況;哪些模塊用戶使用比較頻繁;在用戶操作的數據有哪些特點等等;這些需求需要具體定位到系統的哪些功能模塊、功能點;
F 客戶端性能指標要求:
請求響應時間分布;請求的準確率等等。
4、編寫性能測試方案、設計測試場景;
明確測試目的和測試的范圍以及項目功能需求,分析測試環境中可能出現瓶頸的位置,據此來編寫性能測試方案。在設計測試場景時,盡可能把測試按照類型劃分,每個類型下又設計N個場景。一般來說測試中會使用的一些場景:
預期性能指標測試、單一功能加壓測試、復雜場景測試、壓力測試、負載測試、大數據量測試、配置測試等。根據對業務數據的分析,設計與真實情況類似的場景,來測試系統的整體性能。
5、相關資源準備(硬件資源、軟件資源);
硬件資源包括被測應用的主機和應用環境的部署,壓力發生環境的準備和網絡環境的部署以及監控系統環境的部署等。
軟件資源包括測試程序的開發,擋板的開發,測試腳本的編寫、測試數據的準備和參數化數據在各測試用例中的調整、數據分析準備等。
6、執行性能測試并收集測試結果;
在測試執行前,需要確認用例和場景、測試環境、測試數據、測試腳本、測試工具監控工具的正常。
在測試過程中,每個場景的執行和使用的用例都要做記錄,并且做好結果的搜集,關鍵數據要做截圖。
在測試完成后,注意數據的恢復和備份、環境的清理、結果的整理和相關文檔的生成。
7、分析結果;
測試結果的分析其目的主要是根據測試獲取到的數據去判斷造成系統出現瓶頸的位置,挖掘造成系統瓶頸的原因。當然這個過程是技術含量最高的一環。
8、系統調優及再測試
根據測試的分析結果,有針對性的去進行優化。比如:針對緩存上的問題,可以設置多級緩存;針對數據傳輸的問題,可以把大數據塊分塊傳輸,減小網絡傳輸;如果是硬件資源的問題,可以增加更多的硬件資源;如果是服務器的應用訪問壓力問題,還可以做服務器應用的負載均衡水平擴展。在系統調優后,還可以再行測試以便達到更好的效果和切中指標。
總之,性能測試是個繁瑣和細致的工作過程,測試工具在測試中也只是一個輔助性的作用,而對測試得到的數據進行分析進而準確的定位問題和系統瓶頸才是關鍵。