Bs結構程序一般會關注的通用指標如下(簡):
Web服務器指標指標:
* Avg Rps: 平均每秒鍾響應次數=總請求時間 / 秒數;
* Avg time to last byte per terstion (mstes):平均每秒業務角本的迭代次數 ,有人會把這兩者混淆;
* Suclearcase/" target="_blank" >ccessful Rounds:成功的請求;
* Failed Rounds :失敗的請求;
* Successful Hits :成功的點擊次數;
* Failed Hits :失敗的點擊次數;
* Hits Per Second :每秒點擊次數;
* Successful Hits Per Second :每秒成功的點擊次數;
* Failed Hits Per Second :每秒失敗的點擊次數;
* Attempted Connections :嘗試鏈接數;
CS結構程序,由於一般軟件后台通常為數據庫,所以我們更注重數據庫的測試指標:
* User 0 Connections :用戶連接數,也就是數據庫的連接數量;
* Number of deadlocks:數據庫死鎖;
* Butter Cache hit :數據庫Cache的命中情況
當然,在實際中我們還會察看多用戶測試情況下的內存,CPU,系統資源調用情況。這些指標其實是引申出來性能測試中的一種:競爭測試。什么是競爭測試,軟件競爭使用各種資源(數據紀錄,內存等),看他與其他相關系統對資源的爭奪能力。
我們知道軟件架構在實際測試中制約着測試策略和工具的選擇。如何選擇性能測試策略是我們在實際工作中需要了解的。一般軟件可以按照系統架構分成幾種類型:
c/s
client/Server 客戶端/服務器架構
基於客戶端/服務器的三層架構
基於客戶端/服務器的分布式架構
b/s
基於瀏覽器/Web服務器的三層架構
基於中間件應用服務器的三層架構l
基於Web服務器和中間件的多層架構l
在每種不同的系統架構的實施中,開發人員可能選擇不同的實現方式,造成實際情況紛繁復雜。我們不可能對每種技術都詳細解說,這里只是介紹一種方法提供給你如何選擇測試策略,從而幫助分析軟件不同部分的性能指標,進而分析出整體架構的性能指標和性能瓶頸。
由於工程和項目的不同,所選用的度量,評估方法也有不同之處。,不過仍然有一些通用的步驟幫助我們完成一個性能測試項目。步驟如下
1. 制定目標和分析系統
2. 選擇測試度量的方法
3. 學習的相關技術和工具
4. 制定評估標准
5. 設計測試用例
6. 運行測試用例
7. 分析測試結果
制定目標和分析系統
每一個性能測試計划中第一步都會制定目標和分析系統構成。只有明確目標和了解系統構成才會澄清測試范圍,知道在測試中要掌握什么樣的技術。
由於工程和項目的不同,所選用的度量,評估方法也有不同之處。,不過仍然有一些通用的步驟幫助我們完成一個性能測試項目。步驟如下
1. 制定目標和分析系統
2. 選擇測試度量的方法
3. 學習的相關技術和工具
4. 制定評估標准
5. 設計測試用例
6. 運行測試用例
7. 分析測試結果
制定目標和分析系統
每一個性能測試計划中第一步都會制定目標和分析系統構成。只有明確目標和了解系統構成才會澄清測試范圍,知道在測試中要掌握什么樣的技術。
目標:
1. 確定客戶需求和期望
2. 實際業務需求
3. 系統需求
系統組成
系統組成這里包含幾方面含義:系統類別,系統構成,系統功能等。了解這些內容的本質其實是幫助我們明確測試的范圍,選者適當的測試方法來進行測試。
系統類別:分清系統類別是我們掌握什么樣的技術的前提,掌握相應技術做性能測試才可能成功。例如:系統類別是bs結構,需要掌握 http協議,java,html等技術 。或者是cs結構,可能要了解操作系統,winsock,com等。所以甄別系統類別對於我們來說很重要。
系統構成:硬件設置,操作系統設置是性能測試的制約條件,一般性能測試都是利用測試工具模仿大量的實際用戶操作,系統在超負荷情形下運作。不同的系統構成性能測試就會得到不同的結果。
系統功能:系統功能指系統提供的不同子系統,辦公管理系統中的公文子系統,會議子系統等,系統工能是性能測試中要模擬的環節,了解這些是必要的。
選擇測試度量的方法
經過第一步,將會對系統有清醒的認識。接下來我們將把精力放在軟件度量上,收集系統相關的數據。
度量的相關方面:
* 制定規范
* 制定相關流程, 角色,職責
* 制定改進策略
* 制定結果對比標准
學習的相關技術和工具
性能測試是通過工具,模擬大量用戶操作,對系統增加負載。所以需要掌握一定的工具知識才能進行性能測試。大家都知道性能測試工具一般通過winsock,http等協議紀錄用戶操作。而協議選擇是基於軟件的系統架構實現(web一般選擇http協議,cs選擇winsock協議),不同的性能測試工具,腳本語言也不同,比如rational robot中vu腳本用類c語言實現。
開展性能測試需要對各種性能測試工具進行評估,因為每一種性能測試工具都有自身的特點,只有經過工具評估,才能選擇符合現有軟件架構的性能測試工具。確定測試工具后,需要組織測試人員進行工具的學習,培訓相關技術。
制定評估標准
任何測試的目的都是確保軟件符合預先規定的目標和要求。性能測試也不例外。所以必須制定一套標准。
通常性能測試有四種模型技術可用於評估:
*線性投射:用大量的過去的,擴展的或者將來可能發生的數據組成散布圖,利用這個圖表不斷和系統的當前狀況對比。
*分析模型:用排隊論公式和算法預測響應時間,利用描述工作量的數據和系統本質關聯起來
*模仿:模仿實際用戶的使用方法測試你的系統
*基准:定義測試和你最初的測試作為標准,利用它和所有后來進行的測試結果進行對比
設計測試用例
設計測試用例是在了解軟件業務流程的基礎上。設計測試用例的原則是受最小的影響提供最多的測試信息,設計測試用例的目標是一次盡可能的包含多個測試要素。這些測試用例必須是測試工具可以實現的,不同的測試場景將測試不同的功能。因為性能測試不同於平時的測試用例,盡可能把性能測試用例設計的復雜,才有可能發現軟件的性能瓶頸。
運行測試用例
通過性能測試工具運行測試用例。同一環境下作的性能測試得到的測試結果是不准確的,所以在運行這些測試用例的時候,需要用不同的測試環境,不同的機器配置上運行。
分析測試結果
運行測試用例后,收集相關信息,進行數據統計分析,找到性能瓶頸。通過排除誤差和其他因素,讓測試結果體現接近真實情況。不同的體系結構分析測試結果的方法也不同,bs結構我們會分析網絡帶寬,流量對用戶操作響應的影響,而cs結構我們可能更關心會系統整體配置對用戶操作的影響。
本文介紹的性能測試方法不依賴任何測試工具,對於如何開展性能測試起到一個指導作用。
