HP Performance Center測試工具簡介 - VuGen
HP Performance Center測試工具簡介 - VuGen
簡介 |
我們大多數熟悉的效能測試工具為JMeter,而此處將介紹由HP提供的應用軟體HP PC (HP Performance Center)進行效能測試的部分操作介紹。HP PC是HP Load Runner的企業版,有統一的管理介面、遠端控制與多個Clients同時壓測的功能,適合跨國大企業大規模的測試規劃,所包函的工具與相關功能非常豐富,而本篇為介紹使用HP PC進行測試所需的第一步,測試腳本編輯工具VuGen的操作說明。 |
作者 |
夏宏彰 |
一、前言
二、目的
三、HP PC工具介紹
四、VuGen 腳本開發

4.1 建立腳本






4.2 客製化腳本
l vuser_init: 執行一次性的初始化工作,每個模擬的使用者(Thread)皆會執行一次。
l Action_1: 實際測試的動作1,例如發出首頁的請求
l Action_2:實際測試的動作2
l Action_n: 實際測試的動作n,依不同的情境,可分批錄製數個動作。
l vuser_end: 執行一次性的結束工作,每個模擬的使用者(Thread)皆會執行一次。

此處我們在vuser_init中設定https連線所用的SSL版本。由於此版本VuGen尚未有"TLS1.2"(需要上patch),所以我們若要在VuGen中測試,要指定成"TLS",並在Run-Time Seetings中勾選"Winlnet replay instead of Socket (Windows only)",如下所示:
(*此設定僅限於VuGen中測試,若在HP PC上則用"TLS1.2", 也不用勾選 "Winlnet…"選項)
vuser_init()
{
web_set_sockets_option("MAX_CONNECTIONS_PER_HOST","1");
web_set_sockets_option("SSL_VERSION", "TLS");
web_set_sockets_option("PRINT_SSL_INFO","1");
return 0;
}

模擬多人或不同環境時,我們可以將錄製腳本改成參數化設定。VuGen提供的介面非常直覺,只要在我們要改變的數值上按下滑鼠右鍵就可直接設定參數,並可一次取代所有相同的數值成為該參數。Popup選單設定畫面如下:


如何選取下一列資料"Select next row":
l Sequential: With this option, the parameter will hold the same value during the same iteration.
l Unique: With this option, the parameter will hold a unique value for each vuser. When this option is selected the total rows of data should at least be as many as the total vusers.
l Random: With this a option, a value randomly selected.
l Same Line as……: With this option the data row for the parameter can be aligned with that of another parameter. E.g. Suppose we have two parameters one for user name(parUN) and other for password(parPass) then the Select next row for password will be set to same line as parUN.
一般來說每一列測試資料表示某個使用者的資料,不同列表示不同使用者,則一列資料不可同時被多個Threads執行時,我們會選擇"Unique"。你也可以按下"Simulate Parameter…"來預覽資料如何被取用。
設定資料亦可用Notepad來編輯,選擇"Edit with Notepad…",多組資料要壓測時這樣會快很多。但記得編輯完成時要直接用Notepad來儲存! 此時我們會發現此文字檔的檔名以該參數命名,副檔名為".dat"。一個參數檔可以有一個或多個參數,在新增參數時可以決定儲存在新的檔案(預設),或是選擇一現存的檔案。
設定參數時,資料的型態也不限於固定的字串,可為數字、序號、亂數、日期等,如下所列共有13種:
1. BPT
2. Custom
3. Date/Time
4. File
5. Group Name
6. Iteration Number
7. Load Generator Name
8. Random Number
9. Table
10. Unique Number
11. User Defined Function
12. VUser ID
13. XML
這些參數同樣可由Design -> Parameters -> Parameter Lis…進入設定,或是點選如下"Parameters":


當設定的參是動態的由Response取得再放回Request,例如SessionId,則可以用"web_req_save_param()"方法取得Response中的某個位置的值,例如取得LB(Left Bound)與 RB(Right Bound)中間的值,將此值設成參數"ApiSessionId",之後我們即可用{ApiSessionId}方式在請求中代入此參數。"web_req_save_param()"必須宣告於該Request之前,如此HP PC才知道將該變數儲存下來,如下所示:

模擬使用者行為時,我們可以設定使用者的think time,讓測試可更符合實際上的使用行為。用"lr_think_time()"來設定使用者的think time ,時間單位是秒,例如 lr_think_time(10)表示腳本執行到此要暫停10秒。
4.3 Run-Time Settings
//Run Logic
可在此指定每次執行重複的次數,例如設定Number of Iterations = 3,則按下Reploy時時所有Action會被執行3次。

此處以server回覆的Response-Code用來檢查結果是否符合預期。設定要檢查的字串,若回覆中有相同的字串出現則表示錯誤。

可以啟用或取消。建議在驗證時將所有的log打開,確認Script結果與Server回覆的內容符合預期時再關閉進行效能測試,或是僅在error 時輸出log,設定如下所示。

可在此將think time乎略,或是重新設定所有think time的時間。

此處可設定Error Handling的方式,例如系統需login與logout時,則建議勾選Continue on error,避免過程中其他錯誤造成沒有logout的情況; Multithreading可選擇用process或是thread方式執行; Automatic Transactions則是設定視Action為交易還是視Action中的每一步驟為交易。

五、腳本測試
5.1 Replay - 執行測試

測試若成功則顯示如下:

5.2 測試結果
