之前提到的文章都只是單方面發送 http request,卻沒有針對收回來的資料做驗證,其實在 JMeter 裡的 Assertion 是可以針對每一個 request 回應的資料做驗證,而常用的驗證內容包括:
- 回傳的資料內容 (回覆代碼 Response code、回覆訊息 Response message.. 等)
- 回應的時間
- 回傳資料的大小。
這裡我們就先以 ”回傳的資料內容” 來做驗證。
舉例來說,如果我們要測試連線到 Yahoo 的網站是否成功,除了有成功發送 http request 外,還要驗證回覆代碼是否為 200 。
一開始一樣先建立「測試計劃 -> 新增 -> Threads (Users) -> 執行緒群組」及「取樣 -> Http 要求」,接著,在「Http 要求」上按右鍵新增「驗證 -> 驗證回覆」。
我們也可以再加上「驗證結果」與「檢視結果樹」,來看我們驗證的資料是否正確通過。
在「驗證回覆」的頁面主要分為幾個選項
- Apply to: 如果一個 sample 底下還存在另一個 sample ,可以設定是兩個 sample 都必須通過驗證,或是只要擇一即可。
舉例來說,我們要發送 http 要求到 tw.yahoo.com 時,會得到回覆代碼為 301,之後會自動幫我們轉址到 https://tw.yahoo.com,這時候如果我們選擇「Main sample and sub-samples」,也就是兩個 sample 都必須符合驗證才算成功,此時我們就可以在驗證結果頁面看到錯誤訊息(如下圖)。
可以到 「檢視結果樹」頁面看到更進一步的資訊(如圖)
此時,我們可以選擇「Main Sample Only」,就可以只驗證 https://tw.yahoo.com 所回傳的回覆代碼了。
- 須檢查的回覆欄位:根據不同要檢查的資料來做驗證,在這邊我們用「回覆代碼」來做範例。
- 樣式比對規則:如果為字串則用 “Equals” or “Substring”,若為 Regular Expression 則可以用“包含(Contains)” or “相符(Matches)”
- 測試用樣式:可以為字串或是 Regular Expression
將相關的資料設定完畢之後,就可以開始執行,到「驗證結果」看是否成功通過驗證,假如我們故意將 “200″ 改成 “400″,在「驗證結果」頁面就可以看到相關的錯誤訊息。
如果改回正確的 200 訊息,就不會出現任何錯誤訊息。
參考文章: