首頁 > 軟體

一文弄懂使用Jmeter來進行效能測試

2021-02-07 21:00:24

該文章是基於上一次文章的 軟體測試漫談(web測試,自動化測試,Jmeter) 的續篇, 主要是詳細講解 Jmeter 的入門教學。

因為上次的文章只是簡單地講解了 Jmeter 的使用和一些概念,所以很多初學者像按照原來的文章操作 Jmeter 進行測試是比較麻煩的,所有才有了這篇後續,以幫助開發者能快速使用 Jmeter 來進行測試。如果還沒看過之前那個文章,建議先看一下,學習一下Jmeter的基本概念,以便熟悉該文章操作的一些概念。該文章基於 Jmeter 版本 5.1.1 和 Windows 10。

測試需求

模擬20個 谷歌瀏覽器型別 使用者 同時 存取 http://www.baidu.com/https://www.csdn.net/api/articles (該連結是獲取 csdn 上的文章,如果正確會返回狀態 "status": "true",) 在負載達到30 QPS 時的平均響應時間 和 結果準確度。

操作步驟

  1. 在 Jmeter 官網上下載 Jmeter 安裝包,下載地址: https://apache.osuosl.org//jmeter/binaries/apache-jmeter-5.2.1.zip,需要先安裝了 Jdk ,解壓 開啟檔案 apache-jmeter-5.1.1binjmeter.bat

簡單設定請求

  1. 在測試計劃中選擇新建執行緒組,重新命名執行緒組為20個模擬使用者執行緒組。

    在 Number of Threads 欄 填寫 20 ,設定 執行緒數為 20。在 Loop Count 欄填寫 10000,設定 迴圈請求10000 次。

  1. 線上程組上右鍵,選擇新增 Http 請求的取樣器

    重新命名該取樣器為請求百度地址,在 Server Name or IP 欄填寫 www.baidu.comProt Number 欄填寫 80 埠,如果是https 協定,則填寫 443 埠。


3. 再線上程組上填寫 HTTP 請求取樣器,並按照如下圖來進行設定和重新命名為 請求 csdn 文章


4. 設定結果檢視 ,線上程組右鍵,新增結果樹


重新命名為 結果檢視,然後點選 上方的 綠色的執行按鈕,即可,檢視到傳送的請求 HTTP 請求。點選結果樹中的,任意一個請求可以看到請求的請求頭,請求時間,響應頭,響應時間等具體資訊。


然後,我們可以通過新增 總報表 的監聽器 來檢視 請求的總體傳送情況


一些特定引數設定

  1. 設定吞吐量/QPS
    Jmeter 提供了一個很有用的定時器,叫做 Constant Throughput Timer (常數吞吐量定時器),該定時器可以很方便地控制給定的取樣器傳送請求的吞吐量。

線上程組上右鍵新建吞吐量定時器

在 Target throughput( in smples per minute )(每分鐘的目標吞吐量): 實際填寫的數值為:60 * QPS ,所以這裡我們填寫1200,然後 Calculate Through based on 選擇 All active threads 。


注意:這裡計算的吞吐量有時候並不準確,一般進行測試的時候,我們會選擇提高一些吞吐量的值以達到實際要求的 QPS

  1. 設定請求頭的引數,設定瀏覽器型別

對於某些請求,有可能我們需要設定請求的請求頭的資訊,例如:瀏覽器型別,鑑權資訊 token 等,這時候,我們可以通過新增 http 請求頭的設定元件來完成。

新增設定元件之後,我們新增上瀏覽器的請求頭資訊.

這時候再點選執行,可以看得到傳送的請求中,請求頭包含了我們設定的資訊:

  1. 判斷返回結果的是否成功

預設 Jmeter 是根據響應碼來判斷結果是否請求請求的,非200 的判斷為不成功,如果我們想根據響應內容判斷,則需要新增斷言器,來自己判斷內容包含哪些字元等,一般我們新增響應資訊的斷言器,即可。


我們加上如果請求響應資訊中包含了字元 {"status":"true 我們則判斷該請求成功,否則失敗,我們可以這樣來設定斷言。


如果我們想單單針對某個請求來進行斷言,我們可以,將斷言放到某個請求裡面,這樣它就會只判斷該請求。這裡我們只針對 獲取 csdn的文章的請求來斷言。

最終的結果

我們完成以上設定之後,點選執行,等待結果執行穩定好,檢視 總報告情況 可以得到以下 截圖


可以看到,再QPS 約為 5 的情況下,兩個請求的總體的情況平均響應時間為 2.371 秒,當前總共傳送了 733個請求,錯誤率 為 3.14%(暫定的時候,後面幾個請求會斷開,也算入了錯誤率的)。由於這兩個請求的響應時間都比較慢和定義的使用者數只為20個,所以QPS 比較難達到20 . 讀者後面可以自己提高 執行緒數 或者替換請求地址來測試看看。

注意事項

  1. 一般而已如果需要進行很高的QPS 的效能測試,不要使用介面來測試,設定完成後,儲存jmx 檔案之後,再使用命令列來測試會更好,因為介面執行的話,會佔用很大資源,實際傳送的請求可能得不到自己想要的QPS。介面執行命令,啟動 jmeter 的時候就有提示。jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]

參考資源

  1. Jmeter 中文教學 板書


IT145.com E-mail:sddin#qq.com