本文同時強調自動化的重要性,采用自動化方式可以創建重復的測試過程并迅速報告應用代碼的質量。只有自動化方式才能保證正確地遵循這些測試過程,并且保證準確和一致地測試應用組件。
導言
性能測試已經成為軟件開發界的一個事后總結出來的想法。IDG 的研究報告指出只有20%的上線的企業Java 應用符合他們的性能要求。如果所有上線的企業Java應用中有80%不滿足他們的服務標準協議(SLAs),那么就需要花費巨大努力去分析為什么會發生這種情況以及如何解決這種問題。要想成功滿足SLA,其關鍵在于應該采用正規的性能測試方法論。本文將詳細闡述該方法論并且指出在每個測試階段所需使用的工具集,以成功確保企業應用的性能。
測試主要分兩類: 功能測試和性能測試。 本文專注于性能測試,因此本文中的所有提及的測試除非有另外說明,否則都指性能測試。
性能測試的準備
一、量化性能需求
為了量化性能要求,我們假設您已經定義了SLA。在深入分析問題之后,關鍵的負責人員應該系統地定義SLA。SLA 的主要推動者應該是應用業務負責人和應用技術負責人。 應用業務負責人,有時是應用產品經理,他負責分析商業案例并把客戶的需求轉化為SLA。其實, 只要滿足SLA, 客戶的需求也會滿足。應用技術負責人,有時是應用構架師,分析必要的技術需求,解釋用例并"真實地檢驗"SLA。因此,技術業務負責人的責任就是確保服務等級是可達到的。有效的SLA具有三個關鍵特性:
1.具體的。
2.靈活的。
3.現實的。
一個有效的SLA 必須是一個具體的值。一個用例必須在大約五秒內完成是不準確的,因此很難檢驗--5.25秒鐘是否是大約的五秒。一個具體的值便于QA在應用上線前進行測試,當應用上線后,SLA將提供對主動監測和被動監測兩種警報(Alert)的規范。同時,一個有效的SLA在分布式的變化環境中必須也是靈活的?紤]到一些未預料到的情況,我們需要對靈活性進行測量,因此用例必須采用預先定義的時間百分比的方式滿足具體的SLA值。例如,您每天使用的常用搜索引擎。當您執行一次查尋,在95%的時間里可以在2秒內完成;在每20次查詢中,有一次的響應時間是7秒;通常這種變化的范圍是可以接受的。但是如果每20次查詢中,有10次超過7秒,你可能就會考慮換個搜索引擎了。SLA不僅必須是具體的, 也要靈活,同時必須也是現實的。你可以通過要求應用業務負責人和應用技術負責人共同制定SLA的方式保證SLA是現實的。這是一個有效用例的特別關鍵的特性,這是因為在大多數情況下,SLA只由應用業務負責人單方面確定,沒有考慮應用技術負責人的意見。當技術小組接到這些性能需求時,他們往往會忽略,一個不現實的SLA比根本沒有還要糟糕。
二、了解你的用戶
為了保證調優努力的成功你能做的最重要的事就是安排時間了解你的用戶和理解他們在使用你的應用時的行為情況。很少會在生產環境中調優應用服務器,而更多的情況是,通過寫測試腳本再現為虛擬用戶,在上線前的環境中執行負載并進行調優。當在上線前環境中完成調優后, 就可以安全地把配置信息應用到生產環境中。多數公司無法在上線前的環境中充分地再現生產負載。如果您在這些公司中工作,沒必要失望。多數大型的公司并沒有對他們的用戶行為有很好的理解并且在測試環境中不能產生有代表性的負載。
有兩個共同的似是而非的理由:
1. 生產負載太大,在上線前無法模擬。
2. 我沒有任何辦法知道我的最終用戶到底是如何操作的。
針對第一點,我們可以在上線前環境中建立一個按比例縮減的生產版本,當在生產環境中部署時,再按比例放大。雖然沒有做一個生產環境的鏡像有效,但是有時并值得那么做。針對第二點,下面將說明如何采集最終用戶的操作行為。
文章來源于領測軟件測試網 http://www.kjueaiud.com/