測試腳本
性能測試,主要是通過大并發的執行測試腳本來實現性能模擬。
性能測試是一種自動測試,人工往往難以實現。自動測試腳本主要是用來處理通訊協議、交易處理、并發等。測試腳本通常在測試工具的IDE里執行,并且獲得IDE的支持。
自動錄制
在我們操作B/S系統、C/S系統的時候,客戶端會向服務器發送報文,這些報文數據是隱藏在系統內部的,就需要性能測試軟件能夠捕獲到這些數據包,并且對數據包進行分析,得到測試腳本。
PerformanceRunner的測試腳本是采用java語法的beanshell,對于熟悉java和java script的用戶而言是非常簡單的。
VU(虛擬用戶)
虛擬用戶,就是用來模擬真實用戶的客戶端,每個虛擬用戶代表了一個真實的客戶來操作。
事務
事務又稱為Transaction,在PerformanceRunner中的定義如下:事務是這樣一個點,我們為了衡量某個操作的性能,需要在操作的開始和結束位置插入這樣一個范圍,這樣就定義了一個transaction。
事務的作用:PerformanceRunner運行到該事務的開始點時,就會開始計時,直到運行到該事務的結束點,計時結束。這個事務的運行時間在PerformanceRunner的運行結果中會有反映。通俗的講PerformanceRunner中的事務就是針對某個操作的計時器。一旦發現計時開始標識,就開始計時,一旦發現計時結束,就結束計時,并且記錄結果,作為一個事務時間。通常事務時間所反映的是一個操作過程的響應時間。
在PerformanceRunner中,使用事務的主要方法有:
1.事務是PerformanceRunner度量系統性能指標的唯一手段(沒有事務則沒有辦法衡量系統的響應時間);
2.事務能夠用于度量高風險業務流程的性能指標;
3.事務能夠度量在一組操作中每一步的性能指標;
4.通過事務計時實現了不同壓力附在下的性能指標對比;
5.通過事務計時可以幫助定位性能瓶頸;
集合點
執行負載測試時,需要模擬系統上有較重的用戶負載。要實現此操作,可以同步Vuser以便恰好在同一時刻執行任務。通過創建集合點,可以配置多個VU同時執行操作。當某個VU達到該集合時,將進行等待,直到參與該集合的全部VU都到達。指定數量的VU均達到后,釋放所有這些VU。
可通過將集合點插入到VU腳本來指定回合位置。在VU執行腳本并遇到集合點時,腳本將暫停執行,VU將等待控制器或者控制臺的允許以繼續執行。VU從集合釋放后,將執行腳本中的下一個任務。
注意:只能向Action部分添加集合。
插入集合點是為了衡量在加重負載的情況下的性能情況。在計劃中,可能會要求系統能夠承受1000人同時提交數據,在PerformanceRunner中可以通過在提交數據操作前面加入集合點,這樣當虛擬用戶運行到提交數據的集合點時,PerformanceRunner就會檢查同時有多少用戶運行到集合點,如果不到1000人,PerformanceRunner就會命令已經到集合點的用戶在此等待,當集合點等待的用戶達到1000人時,PerformanceRunner命令1000個UV同時去提交數據,從而達到計劃中的需求。
檢查點
測試的目的是檢查數據是否正確。
在測試的過程中,我們需要檢查某個組件的某些屬性滿足某個條件。這個檢查的位置和條件,我們稱為檢查點。
在PerformanceRunner中,使用check(“objectname”, “property”, “期望值”)來作為檢查點的腳本語句,它檢查對象objectname的屬性property是否和期望值一致。
在使用中,可以使用檢查點來檢驗系統的各個方面,如數據庫、GUI屬性等。
參數化與數據驅動
測試腳本是針對一個測試過程的。一個測試過程往往需要眾多的數據來測試。通過錄制得到的腳本,所有的輸入數據都是常數,是固定的。
如果需要使用一個測試腳本測試多組數據,就需要對腳本進行參數化,把固定的常數修改為來自數據源變量。
這個過程我們稱為參數化。
采用了參數化的腳本,我們稱為數據驅動的模式。