一:性能測試工具模型
廣義地說,性能測試工具是指性能測試過程中使用到所有工具,但是我們習慣上把“性能測試工具”定位于PerformanceRunner、LoadRunner、SilkPerformer一類的工具。
關于性能測試的幾個誤區:
1、認為性能測試是使用性能測試工具進行測試。
性能測試工具隻能幫助你實施性能測試,并不能幫助你完成性能測試的需求、設計和分析。
2、認為性能測試工具可以完成性能測試結果分析工作。
性能測試工具隻是能夠根據你的要求以各種方式提供報表,這些報表可以被您用來分析系統性能狀況。
3、不清楚性能測試工具的錄制/回放與功能測試工具的錄制/回放的差別。
功能測試工具的錄制/回放一般是針對GUI的操作錄制,腳本中記錄的是使用者對控件的操作,例如按下了“确認”按鈕或是在“姓名文本框”中輸入了ABCD等内容,這時因為功能測試工具主要是通過操作和資料來驗證功能的正确性,評價的主要标準是GUI的正确性(界面内容的正确性)。而性能測試工具錄制的是服務端和應用之間的通信資料,而不是應用的GUI操作。^_^^_^了解了這一點,不難明白為什麼在進行性能測試腳本錄制的時候,需要首先選擇錄制的協定了。
4、不清楚何時選擇何種協定。
選擇何種協定取決于應用和用戶端之間的通信協定。
二:性能測試工具架構
1、虛拟使用者腳本産生器(VirtualUserGenerator):通過一個Proxy作為用戶端和伺服器之間的中間人。
2、壓力産生器(Player):壓力器扮演着“産生負載”的角色。
3、使用者代理(Agent):運作在負載機(LoadMachine)上的程序,該程序于産生負載壓力的程序或是線程寫作完成“産生負載”的功能。如一台PC可以順利運作200個左右的VU,但對需要1000個VU的情況顯然很難指望一台PC,這時需要通過多台及其進行協作,“使用者代理“幫助産生”步調一緻“的VU。
4、壓力排程和監控系統(Conductor):直接與使用者互動的主要内容,壓力排程可以根據使用者的場景要求,設定各種不同腳本的VU數量,設定同步點等,而監控系統則可以對各種資料庫,應用伺服器、伺服器的主要性能計數器進行監控。
5、壓力結果分析工具(Analysis):用來輔助進行測試結果的分析。
三:性能測試腳本錄制時的協定類型
不要想當然地根據開發語言來決定協定的選取,這樣子極有可能導緻錄制後的腳本不能回放成功。
幾點說明的内容:
1、使用Socket協定可以對任何類型的應用通信進行錄制,但這種錄制生成的腳本很可能沒有任何意義。
2、在對應用間的通信進行錄制生成腳本後,對腳本進行回放,有時會出現回放無法繼續的情況(停留在某個步驟無法進行下去),此時應該考慮是否使用了合适的協定。
協定選擇參考方案
1、Web應用:應用特點:采用J2EE或是dontNet結構,HTTP/HTTPS協定。
2、C/S應用:
a、用戶端程式以ADO、OLEDB方式連接配接背景資料庫,選擇背景資料庫類型選擇相應的協定。
b、用戶端程式以ODBC方式連接配接背景資料庫,ODBC協定。
c、其他協定,根據具體協定類型進行分析。
3、元件:
a、COM/DCOMcom/dcom協定。
b、EJB,EJB協定。
4、服務:
a、WebService,WebService協定。
b、Mail伺服器,SMTP/POP3協定。
c、FTP伺服器,FTP協定。
5、應用伺服器:
a、OracleApplicationServer,OracleApplicationServer協定。
b、SAP,SAP協定。
c、Tuexdo,Tuexdo協定。
四:性能測試工具的選擇與評估
這個問題通常會有兩個層面的意義:第一,建立還是購買?第二,如果購買,如何選擇一種商業工具?
1、建立還是購買?
總而言之,“購買”的方式可以以較低的總體成本快速獲得可用的軟體,但如果被測試對象本身有一定的特殊需求,好使用”建立“的方式建構适合的測試工具。
2、測試工具的評估和選擇過程。
(1)列出需要的工具功能清單
(2)工具比較
(3)成本分析
工具的學習曲線和必要的教育訓練成本也是必須考慮的一個要素。