1. 程式人生 > 實用技巧 >LoaRunner效能測試系統學習教程:場景設計實踐之功能測試指令碼(4)

LoaRunner效能測試系統學習教程:場景設計實踐之功能測試指令碼(4)

上期我們講到LoaRunner效能測試場景設計實踐之負載均衡技術,這期我們講LoaRunner效能測試場景設計實踐之功能測試指令碼。

在LoadRunner中使用功能測試指令碼

LoadRunner能夠將GUIVuser指令碼形式的功能測試指令碼整合到負載測試場景中。這樣就可以使用LoadRunner來測試和監控負載對應用程式功能的影響。LoadRunner可以將GUIVuser指令碼形式的這些功能測試指令碼整合到負載測試場景中,在QuickTest或WinRunner中設計並除錯過的這些指令碼可用作負載測試的基礎。

在LoadRunner中執行功能測試指令碼主要有以下幾個優點:

1.可檢查高負載對應用程式的功能帶來的影響。

2.可以度量應用程式在負載下執行時,典型使用者在客戶端等待的響應時間(端到端的響應時間)。

3.通過GUIVuser可以度量並監控客戶端/伺服器系統在負載下端到端的使用者響應時間。端到端的響應時間表示使用者在提交請求後等待響應的總時間。端到端的響應時間包括GUI響應時間、網路和伺服器響應時間,如圖所示。
在這裡插入圖片描述

QuickTest建立GUI Vuser指令碼

在QuickTest中建立用於LoadRunner測試場景中的GUI Vuser指令碼時,需要遵循特定的準則以確保能夠平衡整合指令碼。QuickTest具有多項與LoadRunner整合設計的功能。但部分QuickTest功能可能在與LoadRunner整合時不可用。QuickTest與LoadRunner整合要注意以下幾個方面。

1.事務

在一些時候為了知道伺服器對某一個業務的處理能力,需要定義事務。在Vuser指令碼中可以通過嵌入適當的開始和結束事務語句指令碼段來定義事務。但要注意的是LoadRunner僅提供事務中資料效能資訊。因此,QuickTest測試必須包括LoadRunner要使用的事務。通常在QuickTest中也使用插入開始事務和插入結束事務來插入事務。這樣可以確保事務被正確地整合到LoadRunner中。

2.將整合資料與測試一起儲存

QuickTest為了能與LoadRunner虛擬使用者技術整合,必須生成特殊的整合檔案。在預設情況下,生成這些資料的選項都是處於開啟狀態,但有時為了保留磁碟空間而禁用該選項。這樣在錄製時就要確保該選項處於開啟狀態。

在QuickTest中,選擇Tools→Options對話方塊,開啟Run選項卡,如圖所示。在這裡一定要保證Allow other Mercury products to run tests and components選項處於選中的狀態,如果沒有選中,則將其選中並儲存設定。
在這裡插入圖片描述

3.新增語句

可以使用Services物件及其相關方法來插入與效能測試相關的語句,主要包括:

AbortGetEnvironmentAttributeLogMessageSetTransactionStatus,ThinkTime,UserDataPointStartTransaction

及EndTransaction。

4.為LoadRunner設計測試

在設計要用於LoadRunner的測試時,需要考慮以下設計準則:

LoadRunner中使用的QuickTest測試應該簡單,並專門針對特定的操作。

LoadRunner無法執行嵌入式操作迭代。

請勿引用外部操作或其他外部資源,如外部資料表文件、環境變數檔案和共享物件庫等。

WinRunner建立GUI Vuser指令碼

WinRunner是一個基於Windows平臺,用於建立、編輯和除錯GUIVuser指令碼的完整開發環境。通過WinRunner可記錄真實使用者在應用程式中的操作。

WinRunner的GUIVuser指令碼是使用TSL(MercuryInteractive的測試指令碼語言)編寫的。TSL是一種與C類似的高階程式語言。它結合了傳統程式語言的功能和靈活性以及專為測試設計的功能。但是WinRunner中建立的Vuser指令碼是不能在UNIX計算機上執行的。

同樣,使用WinRunner建立GUIVuser指令碼時,要注意以下幾個方面:

1.插入事務和集合點

插入事務和QuickTest一樣,直接使用事務函式插入開始事務與結束事務,集合點方面將Rendezvous語句插入到Vuser指令碼中即可。

2.向Controller傳送訊息

執行場景時,Controller的“輸出”視窗顯示有關指令碼執行情況的重要資訊。除了WinRunner自動傳送的訊息外,還可以在每個指令碼中插入向Controller傳送錯誤訊息和通知訊息的語句。

error_message函式用於向Controller的“輸出”視窗或Console傳送錯誤訊息。此函式的語法為:

error_message(message);

其中message為文字字串。

output_message函式用於傳送不是錯誤訊息的特殊通知。此函式的語法為:

output_message(message);

其中message為文字字串。

在執行場景或會話步驟間,可以識別以下物件:

某特定時刻在場景中執行任務的Vuser。

執行指令碼的負載發生器。

執行Controller的計算機。

而有關Vuser和負載發生器的資訊可以通過以下函式來獲取:

lr_whoami:返回Vuser名稱及其所屬的Vuser組。

get_host_name:返回執行指令碼的計算機名稱。

get_master_host_name:返回執行Controller或Console的計算機名稱。

場景中使用GUIVuser指令碼

在QuickTest或WinRunner中建立GUIVuser指令碼後,便可以將該指令碼整合到LoadRunner場景中。在將GUIVuser指令碼新增到LoadRunner場景前,要注意以下幾個問題:

1.每臺計算機上每次只能執行一個GUIVuser。

2.請確保在執行場景前關閉QuickTest或WinRunner。

3.在Run-timeSettingsforscript設定對話方塊中,只有General類中的RunLogic和ThinkTime與QuickTest和WinRunner測試有關,如圖所示。
在這裡插入圖片描述
在這裡插入圖片描述

接下來就是要將GUIVuser新增到LoadRunner場景中,在控制器介面,選擇File→Open,在彈出的對話方塊中選擇要新增的GUIVuser指令碼。也可以選擇File→New,在彈出的NewScenario對話方塊中點選按鈕,彈出OpenTest對話方塊,選擇要新增的GUIVuser指令碼。這裡有一個“檔案型別”框,如圖所示。對於WinRunner來說,選擇“GUIScripts”檔案型別。對於QuickTest來說,選擇“AstraTests”檔案型別。確定檔案型別後,選擇合適的指令碼並進行新增即可。

總結

介紹場景設計的相關內容,介紹了集合點的使用和集合點與事務的關係;IP欺騙技術在實際測試過程中的使用,特別是跨區域網的IP欺騙技術;負載均衡技術,確保測試機不出現瓶頸的情況;RTS設定技術主要需要注意每個場景都必須設定其相應的RTS設定項,不能使用預設設定;最後介紹了路徑轉換技術和功能測試指令碼在效能測試中的使用。