在大多數的性能測試工作中,我們可以看出很多內容都是互相關聯的。這就給我們提供了一個思路:性能測試的很多內容可以經過一定的組織統一來進行。統一開展性能測試的巨大好處是可以由淺入深按照層次對系統進行測試,進而減少不必要的工作量,以實現節約測試成本的目的。為此,本文提出了“全面性能測試模型”的概念。
“全面性能測試模型”提出的主要依據就是一種類型的性能測試可以在某些條件下轉化成為另外一種類型的性能測試,而這些類型的測試實施也是很類似的。例如:針對一個網站進行測試,模擬10到50個用戶就是在進行常規性能測試,用戶增加到1000乃至上萬就變成了壓力/負載測試。如果同時對系統進行大量的數據查詢操作,就包含了強度測試。
1 全面性能測試模型
在“全面性能測試模型”中,把Web性能測試分為八個類別。下面首先介紹八個性能測試類別的主要內容。
(1) 預期指標的性能測試:系統在需求分析和設計階段都會提出一些性能指標,這些指標是性能測試要完成的首要工作之一,本模型把預先確定的一些性能指標的測試稱為預期指標的性能測試。
這些指標主要是指諸如“系統可以支持并發用戶1000”、“系統響應時間不得高于10秒”等在產品說明書等文檔中中十分明確的內容,對這種預先承諾的性能要求,測試小組應該“首當其沖”完成這類測試。
(2) 獨立業務性能測試:獨立業務主要是指一些核心業務模塊,這些模塊通常具有功能比較復雜、使用比較頻繁、屬于核心業務等特點。這類特殊的、功能比較獨立的業務模塊始終都是性能測試重點。我們通常不但要測試這類模塊的一些和性能相關的算法,還要測試這類模塊對并發用戶的響應情況。
核心業務模塊在需求階段就可以確定,在系統測試階段開始單獨測試其性能。如果是系統類軟件或者特殊應用的軟件,通常從單元測試階段就開始進行測試,在后繼的集成測試、系統測試、驗收測試中進一步進行測試,以保證核心業務模塊的性能穩定。
用戶并發測試是核心業務模塊的重點測試內容,“并發”的主要內容是模擬一定數量的用戶同時使用某一核心模塊的“相同”或者“不同”的功能,并且持續一段時間。對“相同”的功能進行并發測試分為兩種類型,一類是在同一時刻進行完全一樣的操作,例如打開同一條數據記錄進行查看;另外一類是在同一時刻使用完全一樣的功能,例如同時提交數據進行保存?梢钥闯龊笳呤前扒罢叩,后者是前者的特例,這種并發測試都要持續一定的時間。
從微觀角度講,同時使用某一核心模塊“不同”的功能,也是一種組合業務性能測試,只不過這種組合的相關業務大分類是一致的。
(3) 組合業務性能測試:通常不會所有的用戶只使用一個或者幾個核心業務模塊,每個功能模塊都可能被使用到,所以Web性能測試既要模擬多用戶的“相同”操作(這里的“相同”指很多用戶使用同一功能),又要模擬多用戶的“不同”操作(這里的“不同”指很多用戶同時對一個或者多個模塊的不同功能進行操作),對多個業務進行組合性能測試。組合業務測試是最接近用戶實際使用情況的測試,因而是性能測試的核心內容。我們通常按照用戶的實際使用情況來模擬使用各個模板的人數比例。
由于組合業務測試是最反映用戶使用系統情況的測試,因而組合測試往往和服務器(操作系統、Web服務器、數據庫服務器)性能測試結合起來,在通過工具模擬用戶行為的同時,還通過測試工具的監控功能采集服務器的計數器信息,進而全面分析系統的瓶頸,為改進系統提供有利的依據。
用戶并發測試是組合業務測試的核心內容!敖M合”并發的突出特點是分成不同的用戶組進行并發,每組的用戶比例要根據實際情況來進行匹配。組合業務測試可以理解為包含了“核心業務模塊并發”和“非核心業務模塊并發”同時進行的并發用戶測試。
文章來源于領測軟件測試網 http://www.k11sc111.com/