性能測試是為了保證產品發布后其性能能夠滿足用戶的需求,本文結合具體案例介紹了應用系統性能測試的六大步驟。
在本文介紹的這個案例中,被測應用系統是一家公司的客戶信息系統,它主要用來錄入、修改以及查詢全球客戶的信息,并將客戶信息轉入到業務系統。但是,在應用過程中,客戶經常投訴在某個時刻新建或者修改一個客戶信息非常慢,正常情況下完成該操作只需要1~5秒,而異常時卻需要10分鐘左右,而且系統管理員發現系統資源使用率都比較低,這種情況的出現并沒有規律性。
在這個案例中我們發現了系統存在性能問題,下一步工作就是要在性能測試過程中查找形成系統瓶頸和故障的根本原因,在此項工作中我們應該按照如下幾個步驟進行。
1.確定明確的測試目標
性能調優是是無止境的,所以在測試之前應確定一個明確性能調優目標,這也是后面“評估性能驗證”的一個基準,也是測試終止的一個基準。在本案例中目標設定為: 在相同系統環境配置下30個并發用戶在1~5秒鐘內完成各類在線操作。
2.測試需求分析
性能調優的測試分析主要目的是要挖掘出可能造成系統瓶頸的因素,并為后面的測試用例設計提供保證。影響系統性能有很多種原因,在此應關注如下幾個關鍵點:
應用配置需求: 例如應用整體框架、涉及到哪些第三方的組件、應用層與數據庫層的接口、使用了什么數據庫等。
系統配置需求: 例如用戶客戶端配置、客戶端與服務器端的網絡配置、應用服務器或數據庫服務器操作系統等。
用戶使用情況需求: 例如用戶分布情況; 哪些模塊用戶使用比較頻繁; 在用戶操作的數據有哪些特點等。
這方面工作是非常繁雜的,而且要求測試人員具有挖掘可能造成系統瓶頸因素的洞察力和敏銳感,但是很多測試人員在接手測試之后,很快進入到測試用例設計階段。實踐證明,這樣做往往都適得其反,要么工期延期,要么項目開發失敗。這個過程在測試整體過程中是非常關鍵的一環。性能測試分析有個特點: 它關注的是應用的整體,或者會仔細分析圍繞著應用的各種外部因素,比如說它所涉及到的硬件、第三方軟件,而不會深入到項目具體的內部。這是因為性能測試關注的是項目整體、是一種黑盒測試方法,我們關心一個項目的整體在運行時所暴露出來的問題。在此案例中我們獲取到如表所示需求。
3.測試用例設計
此過程主要目的是設計出一些合理的場景去驗證在需求分析階段獲得的可能影響性能的因素是否是造成系統瓶頸的因素。測試用例設計一般包括測試策略、測試案例、測試內容。
測試策略一般包括對比測試環境與真實的業務操作環境,真實業務操作環境又可能涉及局域網測試環境與機房測試環境等
測試案例主要是根據測試需求分析的結果制定出在測試執行時系統的執行方法,比如本案例中“5個人同時錄入不同的新客戶信息,以及具體的模擬步驟”。在測試案例設計時應注意如下幾點:
虛擬用戶的操作步驟要盡量類似于真實用戶的操作。
操作的數據要類同于真實用戶實際使用數據,例如在案例中用戶錄入客戶信息時,根據需求得到的結果,我們可以設計有3~4個虛擬用戶在錄入一些小客戶的信息,1~2個虛擬用戶在錄入大客戶的信息等。
在案例設計時要充分考慮到需求中用戶對模塊的使用頻率。使得在模擬時每個模塊使用情況盡量地類似于真實環境。
測試內容一般包括并發性能測試、疲勞強度測試、大數據量測試以及系統資源監控等,我們在做性能調優測試時主要是做并發性能測試以及系統資源監控這些方面的工作。從對系統產生并發性能測試過程中監控系統中各種資源的變化,來判斷導致性能瓶頸的原因。
4.腳本開發數據的準備以及測試執行與監控
文章來源于領測軟件測試網 http://www.kjueaiud.com/