什么是性能測試?
性能測試是在上線前對系統進行端到端性能測試的惟一方法。性能測試解決方案是:
1.使用最少的硬件模擬成百上千的用戶與系統進行交互
2.測量最終用戶的響應時間
3.以一致的方式重復負載
4.在負載下監測系統組件
5.提供健壯的的分析和報告機制
自動化測試方案通常使用4個主要的組件來構建和運行測試。這些包括:
1.虛擬用戶發生器可以捕獲最終用戶業務過程,并轉化為自動化腳本
2.控制器將組織、驅動、管理、和監測負載
3.執行期間負載發生器執行虛擬用戶
4.分析引擎觀測、分析和對比結果
為什么使性能測試自動化?
自動化測試是一種方法,發揮人力,過程,技術的作用,以降低應用,升級或補丁部署的風險。其核心,自動化性能測試是在預部署的系統上施加生產環境的負載,同時測量系統性能和最終用戶的體驗。構建良好的性能測試可以回答類似下面的問題:
1.應用響應時間對于計劃的用戶足夠快么?
2.應用是否能夠處理期望的用戶負載或更多?
3.應用是否能處理業務所需的事務數量?
4.應用在期望內或期望外的用戶負載下是否穩定?
5.你確定用戶會在上線時得到積極的體驗么?
通過回答這些問題,自動化性能測試采用業務術語量化改變所帶來的影響。這樣,就明確了部署的風險。一個有效的自動化性能測試過程可以幫助制定考慮周詳的發布決策并防止系統故障和可用性問題。
自動化性能測試過程
一些已經成功實行自動化性能測試的組織,已經將這個過程分解為獨立的階段。雖然具體的實施可能有所不同,但是,寬泛地說,性能測試可以分為四個 階段—設計,構建,執行和診斷/調整。每個階段有具體的任務,涉及到不同的角色,這些任務在轉到下一階段前必須完成。在最高級別,四個階段可以被描述如 下:
1.設計階段包括定義系統中所要測試的業務過程,在平均或峰值生產時間的綜合業務過程,和用戶和響應時間的全面目標。
2.構建階段包括建立和配置測試系統和基礎設施,并且使用自動化性能測試解決方案來構建測試腳本和負載場景。
3.執行階段由運行負載場景和測量系統性能組成。
4.診斷和調整反復迭代的階段超出了測量系統性能和負載測試,達到另外一個層次,關鍵是要查明問題來快速幫助解決問題,并且調整系統參數來最優化性能。
讓我們詳細分析關系到每個階段成功與否的必要任務。
設計
這是性能測試團隊向業務部門搜集性能需求的主要階段。需求可以被認為分為四個方面—業務,技術,系統和團隊需求。
業務需求一般通過與主題專家(SME,subject matter expert)的會議來搜集。這些人可以是業務分析師和最終用戶。當下面內容準備好后,一套全面的業務需求就形成了:
1.應用概要:系統用法的演示使得性能團隊得到更高層次的理解,應用是如何被使用的。
2.業務過程列表:最終用戶在系統上所執行的關鍵業務過程列表。
3.業務流程:Word文檔,詳盡記錄每個業務過程的精確步驟和屏幕。
4.事務列表:業務過程中關鍵活動的列表—例如登錄或轉移資金—需要在負載下測量。
5.業務過程圖:業務流程圖說明業務流程的分支條件。
技術需求可以通過與系統管理員和數據庫管理員(DBA)的會議來搜集。這些人可以隸屬于開發或運營部門,或者隸屬于兩者。一套全面的技術需求僅當以下內容齊備時完成:
1.環境評審:按照測試體系結構由系統或基礎設施組進行走查評審。
2.系統范圍的會議:召開會議,討論和確認在測試過程中系統需要排出的部分。
3.生產圖:一個生產基礎設施圖,用于說明測試與生產環境的差異,當從QA向生產遷移時可能對性能造成影響。
最后,重要的是,必須收集系統需求。這些是系統的高層次目標,決定著負載測試過程的通過/失敗狀態。這些一般在與LOB的項目經理工作中達成一致。系統需求包括對以下問題的回答:
1.系統在正常和最高峰時期必須支持多少用戶?
2.每秒鐘它必須處理多少個事務?
3.對于可業務關鍵事務最大和最小可接受的響應時間是多少?
4.用戶群體如何聯系?
5.生產中系統承受的工作負載是什么?以及混合的事務?
團隊需求是進展到構建階段前需要解決的最后一個問題。這只不過是決定適合的性能團隊成員來參與到未來的負載測試。最初,這也許被自動的確定(例如,當只有一個團隊)。然而,如果性能測試成為卓越中心(CoE)的一部分,那么資源分配,內部后勤就應該在設計階段考慮和解決。
預先收集一套完整的業務,技術,系統,和團隊需求是使負載測試有效和成功的基礎。
文章來源于領測軟件測試網 http://www.kjueaiud.com/