天天看點

性能測試工具工作原理

  一:性能測試工具模型

  廣義地說,性能測試工具是指性能測試過程中使用到所有工具,但是我們習慣上把“性能測試工具”定位于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)成本分析

  工具的學習曲線和必要的教育訓練成本也是必須考慮的一個要素。

繼續閱讀