最后一種就是把前兩種結合起來進行的大數據量測試,主要是測試在極限狀態下、同時運行時產生較大數據量時的系統性能。
由于大數據量測試一般在投產環境進行,通常把它獨立出來并和疲勞強度測試放在一起,在整個性能測試的后期進行。大數據量測試可以理解為特定條件下的核心業務或者組合業務測試。
(6) 網絡性能測試:網絡性能測試主要是為了準確展示帶寬、延遲、負載和端口的變化是如何影響用戶的響應時間的。在實際的軟件項目中,主要是測試應用系統的用戶數目與網絡帶寬的關系。網絡性能測試一般有專門的工具,本書不再贅述,網絡測試的任務通常由系統集成人員來完成。
(7) 服務器性能測試(操作系統、Web服務器、數據庫服務器):服務器性能測試分為初級和高級兩種形式。“初級服務器性能測試”主要是指在業務系統工作或者進行前面其它種類性能測試的時候,監控服務器的一些計數器信息,通過這些計數器對服務器進行綜合性能分析,找出系統瓶頸,為調優或者提高性能提供依據。“高級服務器性能測試”一般不由測試人員進行,而是由專門的系統管理員來進行,例如數據庫服務器由專門的DBA來進行測試和調優。本書主要討論在測試中常見的“初級服務器性能測試”,既通過工具對服務器資源進行監控的性能測試。
(8) 一些特殊測試:主要是指配置測試、內存泄漏測試等一些特殊的Web性能測試。這類性能測試或者和前面的測試結合起來進行,或者在一些特殊情況下獨立進行,本書重點討論前一種情況。后一種情況往往通過特有的工具進行,投入較大,可以不作為性能測試的范疇來研究。
“Web全面性能測試模型”是在上面對性能測試分類和總結的基礎上提出的,主要包含三部分的內容。
第一部分:Web性能測試策略模型,本部分內容是整個模型的基礎。軟件類型決定著Web性能測試策略,同時用戶對待軟件性能的態度也影響著性能測試策略的制定。本部分內容主要結合軟件類型和用戶對性能重視程度來討論Web性能測試策略制定的基本原則和方法。本部分內容將在2.2節進行詳細的討論。
第二部分:Web性能測試用例設計模型,本部分內容是模型的核心部分。主要思想是結合測試工具,把上面性能測試的八項內容進一步歸納,形成五類測試用例:
(1) 預期指標的性能測試;
(2) 并發用戶的性能測試;
(3) 疲勞強度和大數據量的性能測試;
(4) 服務器性能測試;
(5) 網絡性能測試;
在具體的Web性能測試用例設計中,往往和測試工具結合起來,把服務器、網絡性能測試的用例設計與前三種類型性能測試的用例設計結合起來進行。例如MI公司的LoadRunner就能在進行壓力測試的同時,完成后面兩類測試的數據采集工作,因此后面兩部分的測試用例設計可以和前面融會在一起,在第5章的案例多采用了這種方式來進行設計。
Web性能測試用例設計模型在2.3節進行詳細的討論。
第三部分:模型使用方法,本部分內容討論如何在工作中使用“Web全面性能測試模型”,具體在2.4節進行詳細的討論。
1.2 Web性能測試策略模型
本節主要介紹Web性能測試策略制定方法。性能測試策略一般從需求設計階段開始討論如何制定,它決定著性能測試工作將要投入多少資源、什么時間開始實施等后繼工作的安排。其制定的主要依據是“軟件自身特點”和“用戶對性能的關注程度”兩個因素,其中軟件的自身特點起決定作用。
軟件按照用途的不同可以分為兩大類:系統類軟件和應用類軟件。系統類軟件通常對性能要求比較高,因此性能測試應該盡早介入。應用類軟件分為特殊類應用和一般類應用,特殊類應用主要指銀行、電信、電力、保險、醫療、安全等領域類的軟件,這類軟件使用比較頻繁,用戶較多,一般也要較早進行性能測試;一般類應用主要指一些普通應用,例如辦公自動化軟件、MIS系統等,一般應用類軟件多根據實際情況來制定性能測試策略,比如OA系統,可以早開始、也可以最后進行性能測試,這類軟件受用戶因素影響比較大。
用戶按對性能的關注度的不同一般可以分為四類,即特別關注、中等重視、一般關注、不怎么關注,這么劃分主要是為了說明用戶對性能測試的影響。實際上,用戶不關注性能并不意味著測試人員就可以忽略性能測試,但是如果用戶特別關注性能,測試人員也應該特別重視性能測試。表2-1列出了性能測試策略制定的基本原則(注意:這里的用戶是廣義范圍的用戶,包括所有和產品有利害關系的群體。因而不單單指最終使用產品的用戶,這些用戶既可以是提出需求的產品經理,也可以是公司的董事會成員,甚至是項目的研發人員)。
表2-1性能測試策略制定基本原則
從表2-1可以看出:(1)“系統類軟件”、“特殊應用類軟件”應該從設計階段開始進行性能測試;(2)制定性能測試策略的主要依據由軟件的特點來決定,用戶的態度對策略會有一定的影響,但不是決定因素。
軟件的特點決定性能測試策略的另外一個重要原因是“一般應用類軟件”本身對性能要求不高,發生性能問題概率不高,因此可以通過提高硬件配置來改善運行環境,進而來提高性能。不過這也不是絕對正確的觀點,例如一個幾千用戶來使用的OA系統,仍然要高度重視性能,不管客戶對待系統的性能是什么態度。
雖然從硬件方面解決性能問題往往更容易做到,同時還可以降低開發成本,但是也不能過分讓用戶進行較大的硬件投入,否則會降低“客戶滿意度”,調整性能最好的辦法還是軟硬件相結合。
“用戶對待系統性能的態度影響性能測試策略,但不起決定作用”的根本原因是最終要把產品交付給用戶來使用,而不是做出來給用戶欣賞。因此不管用戶是否重視性能測試,甚至根本不關心,對于性能要求高的軟件產品也應按照表2-1的策略來執行性能測試。只是如果用戶如果特別重視性能這方面,這意味著測試團隊可能將要進行更多的成本投入,因為有義務使用戶滿意。