HPPC Performance Test LoadRunner VuGen

HP Performance Center測試工具簡介 - VuGen

夏宏彰 2017/12/13 18:34:38
1367

HP Performance Center測試工具簡介 - VuGen


簡介

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

作者

夏宏彰


一、前言

  l   軟體的效能測試大概分成幾個步驟,測試環境的規劃,測試情境、腳本錄製、腳本客制化 ( 如資料參數化、動態資料及其他修改 ) 、腳本測試、測試情境設定、測試執行設定、測試資源安排、執行測試、測試數據分析與報告。除了應用軟體本身測試環境的規劃與情境, HPPC 幾乎可涵蓋所有效能測試的步驟到最後報告的產出,可算是一個功能強大的測試工具。
l   本文件以實際測試所需的操作與設定進行說明,不包括軟體 VuGen 的安裝設定。
l   本文件適用於 HP PC Ver 11.52

二、目的

l   初步了解 VuGen 的操作方式與測試。
l   初步了解 HP PC 設計的方式與效能測試的方式。

三、HP PC工具介紹

l   VuGen: 一個安裝於 Windows 的視窗軟體,用來開發 Load Runner 測試腳本用。
l   Analysis: 一個安裝於 Windows 的視窗軟體,用來分析測試數據產生測試報告。 (HPPC 亦可自行產生報告 )
l   HP PC: HP Performance Center ,管理與操作測試的主控台, Client-Server 的架構,以 Web 介面讓企業進行多人多系統的測試管理。
l   Controller: 執行效能測試的控制主機,可一次控制多台 LG 併發服務請求進行測試。
l   LG: Load Generator ,實際發出請求的機器,可一次模擬數百個使用者進行測試。
 
本篇將說明第一個工具,利用VuGen來設計腳本與驗證腳本執行結果。

四、VuGen 腳本開發

VuGen 是一個本機端的視窗應用程式,我們可以利用 VuGen 進行測試腳本的錄製。
 
執行VuGen,我們首先會看到如下的畫面

4.1 建立腳本

  VuGen 支援許多不同的通訊協定來建立腳本,可以一次僅用單一種協定,或是多種協定混合。此處依我們的應用程式選擇 "Web-HTTP/HTML" 來建立我們的腳本。

 

  之後 VuGen 幫我們建好基本的腳本檔案與相關設定如下圖。腳本有三個檔案 : vuser_init( 初始化 ) Action( 執行動作 ) vuser_end( 結束 ) ,其中每一個 VUser 只會執行一次 vuser_init vuser_end ,但 Action 可一次或重複執行多次。另外,一個完整的測試情境通常會分成多個不同的 Actions ,例如登入、查詢、交易、登出等,每一個都可視為一個獨立的 Action

 

腳本錄製時,我們若清楚了解什麼是 Action Transaction Request ,則錄製時,執行測試時或是最後報告產生時,就可以依我們的需求執行腳本並清楚地呈現在報告中。執行是依 Transaction 來控制,所以 Transaction 是否成功可決定該測試是否繼續或是結束 ; Action 則是報告中圖表的項目,依我們想要的項目分開成不同的 Action ,則可以清楚地在報告中呈現該 Action 的回覆時間統計結果。一般也常會將一個 Action 就當作一個 Transaction 來製作。 Request Web 的應用就是 http request ,一個 transaction 可以是一個 http request(Web Service) ,或是多個 http requests 的結果,若多個 http request 代表一個 transaction ,則表示其中任一個 request 失敗時則該 transaction 已失敗,不用再發下一個 request 了。
 
按下紅色圓點按鈕則表示開始錄製腳本,指定好要錄到哪個 Action URL Browser 等,就可以按下 "Starting Recording" 錄製在 Browser 中操作的動作 (request)
  錄製中會出現下方的控制列,可以在操作頁面時停止或暫停錄製、選擇到錄製的 Action 或是新增另一個 Action 來錄製、 Transaction 開始與結束、加入註解等
  停止錄製後, VuGen 馬上產生腳本,並詢問是否設定動態輸入的參數 ( 此處可先略過,之後再加 ) 。完成後即可看到我們在過程中加新的 Actions 錄製不同的功能的結果如下 :
  l VuGen 測試腳本錄製頁面動作時,主要是將發出的 http request 截取轉成 script 記錄下來。由以下的範例我們可以很快的了解 script 錄製的內容,有 URL, Http Method, Content Type, body :

 

4.2 客製化腳本

  測試腳本 (Scripts) 的組成如下,每一個 script 為一個獨立的檔案 :

l   vuser_init: 執行一次性的初始化工作,每個模擬的使用者(Thread)皆會執行一次。

l   Action_1: 實際測試的動作1,例如發出首頁的請求

l   Action_2:實際測試的動作2

l   Action_n: 實際測試的動作n,依不同的情境,可分批錄製數個動作。

l   vuser_end: 執行一次性的結束工作,每個模擬的使用者(Thread)皆會執行一次。

  //SSL 設定

此處我們在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;

}

 //Run-Time Settings -> Preference

 

 // 參數設定

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

  設定好參數後,可指定該參數在測試時被取用的方式,如用名稱選取 "By name"

 

  ( 此為測試資料範例 )

 

如何選取下一列資料"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":

  設定好之後會發現剛設定的參數已由大括號表示,例如 {url} 如下,此 url 在執行測試時會自動被預設好的參數取代。

 

  // 動態參數

當設定的參是動態的由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

模擬使用者行為時,我們可以設定使用者的think time,讓測試可更符合實際上的使用行為。用"lr_think_time()"來設定使用者的think time ,時間單位是秒,例如 lr_think_time(10)表示腳本執行到此要暫停10秒。

4.3 Run-Time Settings

  當腳本完成後即可進行腳本的驗證,在驗證之前我們可以設定一些執行時的選項,如 Run Logic, Log Think Time Error Handling Content Check 等以掌握腳本執行時的動作,以利我們進行程式或是腳本的調整。以下依次說明每一個設定項目內容 :

 

//Run Logic

可在此指定每次執行重複的次數,例如設定Number of Iterations = 3,則按下Reploy時時所有Action會被執行3次。

  //Content Check

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

  //Log

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

  //Think Time

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

  //Miscellaneous

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

五、腳本測試

5.1 Replay - 執行測試

  Script 與相關的參數、 Rum-Time 設定完成,我們即可開始進行測試,如下所示,只要按下 Play 鍵即可。

 

  過程中可暫停 (Pause) 、停止 (Stop) 執行測試。與程式開發一般,我們亦可設定中斷點 (Toggle Breakpoing) 或是一步一步執行 (Run Step by Step) 我們的測試腳本。

 

測試若成功則顯示如下:

  若測試失敗,我們可以查看下方 Output 視窗中的 log 查看問題。

 

5.2 測試結果

  選擇 Reploay 選單中的 "Test Results…" ,查看測試結果與錯誤的相關訊息。

 

六、結語

有了VuGen所產生的腳本與設定好的參數,接下來我們就可以將腳本上傳到HP PC上,對目標系統進行效能測試。至於HP PC的操作與測試將另篇介紹。
夏宏彰