前言

前面幾篇我們介紹 JMeter 一些基本的知識與操作方式,這一篇我們將簡單介紹前置處理器(Pre Processor) 與後置處理器 (Post Processor),內容包含:
1. 基本介紹
2. 前置處理器
3. 後置處理器

前置處理器後置處理器在 JMeter 是非常方便的設定,可以應付多數情境需求,若熟悉這兩個設定,寫起腳本會更加得心應手,而在後置處理器部分 - XPath Extractor部分,我們使用Debug Sample方式印出所有資料,方便您除錯。本篇文章若有錯誤或任何建議,請各位先進不吝指教。

介紹

基本介紹

在許多壓力測試情境,我們常常需要在發出 HTTP Request 前後進行一些特別的處理,如下圖所示:

case 1.使用帳號密碼進行登入,系統會回傳 token 作為驗證權限使用。我們需要將 token 存起來,提供後續HTTP要求 使用。這時候我們需要後置處理器進行處理。
case 2.我們有些自定義、唯一的變數,像是上一個案例取得的 token,需要放入下一個 HTTP Request 使用。這時候我們需要前置處理器進行處理。

前置處理器部分,將簡單介紹 BashShell 前置處理器與使用者參數;後置處理器部分,則介紹 BashShell  後置處理器、正規表達式剖析器、XPath Extractor。


前置處理器

1. BashShell 前置處理器
Step 1.在我們想要新增前置的取樣點選右鍵  >>  新增  >> 前置處理器  >>   BashShell PreProcessor。 請確認 BeanShell PreProcessor 在 HTTP Request 底下(作為 child )

Step 2. 我們簡單宣告一個UserId,並放入變數內。
String UserId = "JustForTest";
vars.put("UserId",UserId);

Step 3. 在 HTTP Request 中,我們能透過${UserId}取得變數UserId。我們設定方法為 POST,在 Parameter 頁籤中取用 UserId 變數。

Step 4. 我們增加一個檢視結果樹來觀看送出結果。 右鍵點選HTTP Request >> 新增 >> 接聽 >> 檢視結果樹。

Step 5. 執行後,可以看見發送出我們的UserId。這一個簡單的應用,提供給大家參考。


2. 使用者參數 (User Parameter)
請參考前先文章的 User Defined Variables 章節,設定方式相同。



後置處理器

1. BashShell  後置處理器
Step 1.在我們想要新增前置的取樣點選右鍵  >>  新增  >> 後置處理器  >>   BashShell Post Processor。 請確認 BeanShell Post Processor在 HTTP Request 底下(作為 child )

Step 2. 我們可以透過前一篇提到的方法取得 Response並轉換成 String,並進行一些處理。我們這篇範例將直接印出 Response 內容
String result = prev.getResponseDataAsString();
print(result);

Step 3. 我們回到HTTP Request,位置輸入dog0416.blogspot.tw,方法選擇GET


Step 4. 執行並觀看結果 (印出google 網頁原始碼)



2. 正規表達式剖析器
Step 1. 對 HTTP 要求點選右鍵 >> 新增 >> 後置處理器 >>正規表示式剖析器

Step 2. 舉一個範例:我們設定參照名稱為PlayerCode,正規表示式的樣板為userId後面、&符號前的任意內容。

Step 3. 當接收 Response 後,會自動找到符合的內容,將內容存入PlayerCode這個變數裡,您可以透過${PlauerCode} 取得內容。



3. XPath Extractor
Step 1. 對 HTTP 要求點選右鍵 >> 新增 >> 後置處理器 >>XPath Extractor

Step 2. 輸入參照名稱、XPath Query與預設值如下圖:

Step 3. 我們回到HTTP Request,位置輸入dog0416.blogspot.tw/,方法選擇GET

Step 4. 右鍵點選執行緒群組 >> 取樣 >> Debug sample

Step 5. 右鍵點選執行緒群組 >> 接聽 >> 檢視結果樹

Step 6. 執行並觀看結果



上一篇:JMeter BeanShell 介紹與撰寫
目錄:請點我
下一篇:JMeter Command line mode and report dashboard 指令操作模式與報表儀表板

參考資料