JMeter – 驗證回覆資料 (Response Assertion)

之前提到的文章都只是單方面發送 http request,卻沒有針對收回來的資料做驗證,其實在 JMeter 裡的 Assertion 是可以針對每一個 request 回應的資料做驗證,而常用的驗證內容包括:

  1. 回傳的資料內容 (回覆代碼 Response code、回覆訊息 Response message.. 等)
  2. 回應的時間
  3. 回傳資料的大小。

這裡我們就先以 ”回傳的資料內容” 來做驗證。

舉例來說,如果我們要測試連線到 Yahoo 的網站是否成功,除了有成功發送 http request 外,還要驗證回覆代碼是否為 200 。

一開始一樣先建立「測試計劃 -> 新增 -> Threads (Users) -> 執行緒群組」及「取樣 -> Http 要求」,接著,在「Http 要求」上按右鍵新增「驗證 -> 驗證回覆」。

我們也可以再加上「驗證結果」與「檢視結果樹」,來看我們驗證的資料是否正確通過。

螢幕快照 2014-08-24 下午3.58.36

在「驗證回覆」的頁面主要分為幾個選項

  • Apply to:  如果一個 sample 底下還存在另一個 sample ,可以設定是兩個 sample 都必須通過驗證,或是只要擇一即可。

    舉例來說,我們要發送 http 要求到 tw.yahoo.com 時,會得到回覆代碼為 301,之後會自動幫我們轉址到 https://tw.yahoo.com,這時候如果我們選擇「Main sample and sub-samples」,也就是兩個 sample 都必須符合驗證才算成功,此時我們就可以在驗證結果頁面看到錯誤訊息(如下圖)。

    螢幕快照 2014-08-24 下午4.43.55

    可以到 「檢視結果樹」頁面看到更進一步的資訊(如圖)

    螢幕快照 2014-08-24 下午4.45.46

    此時,我們可以選擇「Main Sample Only」,就可以只驗證 https://tw.yahoo.com 所回傳的回覆代碼了。

  • 須檢查的回覆欄位:根據不同要檢查的資料來做驗證,在這邊我們用「回覆代碼」來做範例。
  • 樣式比對規則:如果為字串則用 “Equals” or “Substring”,若為  Regular Expression 則可以用“包含(Contains)” or “相符(Matches)”
  • 測試用樣式:可以為字串或是 Regular Expression

將相關的資料設定完畢之後,就可以開始執行,到「驗證結果」看是否成功通過驗證,假如我們故意將 “200″ 改成 “400″,在「驗證結果」頁面就可以看到相關的錯誤訊息。

螢幕快照 2014-08-24 下午4.22.55

如果改回正確的 200 訊息,就不會出現任何錯誤訊息。

螢幕快照 2014-08-24 下午5.00.20

參考文章:

Apache JMeter 官方網站 – Assertion

 

發表留言