Photo on Hashedin by Sripathi Krishnan
上週介紹了 Apache Bench 的性能測試工具
透過 ab 的指令來輕鬆快速地進行測試
而這週所要介紹的也與 Apache 有關
那就是 Apache 開發的另一個開源測試工具 Apache JMeter
Apache JMeter 是一種較常聽到的開源測試工具
而其測試又以負載測試和性能測試為主要功能
透過 JMeter 可以分析和衡量應用程式或其他服務的性能
針對多個併發的用戶流量測試應用程式
Open Source:免費的 JMeter 允許開發人員使用源代碼進行開發
友善的 GUI:易於使用的 JMeter 圖形化使用者介面
多線程框架:通過單線程同時併發達成多線程
可視化報告:支援多種顯示格式的測試結果
快速安裝:容易安裝,快速啟用
支持多協議:包括 HTTP, JDBC, LDAP, SOAP, JMS 和 FTP
腳本測試:可以藉由 Bean Shell 和 Selenium 進行自動化測試
因為 JMeter 是由 Java 寫成的
所以必須先行安裝 Java Developer Kit
JDK 的版本至少要 8 以上
可以透過指令$ java -version
來查看 java 版本Java SE-下載|Oracle技術網|甲骨文
可以依照自己的作業系統,安裝想要的版本
小弟是直接裝最新版的 Java SE 14
前往 JMeter 的官方網站進行安裝
Apache JMeter - Download Apache JMeter下載完成後點選檔案將其解壓縮
就完成安裝囉~ (就是這麼的簡單)
接著透過指令來開啟 JMeter 的 GUI 介面$ cd apache-jmeter-<version>/bin && sh jmeter
完成開啟後 就可以輕鬆的透過 GUI 介面來操作設定了~
而以下所以快速使用的測試案例是:在 Google 搜尋文章
對左側預設的 Test Plan 按右鍵 接著依序選擇
Add > Threads(Users) > Thread Group
Number of Threads (users):執行緒數量,相當於使用者數量
Ramp-up period (seconds):該時間內啟動完所有的執行緒
Loop Count:上述兩樣的設定值,執行的重複次數
對左側的 Thread Group 按右鍵 接著依序選擇
Add > Sampler > HTTP Request
依照所要執行的內容進行填寫
Protocol [http]:通訊協定 以 http 與 https 較為常見
Server Name or IP:主機名稱或 IP 位置
HTTP Method:可以透過下拉式選單來選擇所用的 method
Path:路徑
對左側的 Thread Group 按右鍵 接著依序選擇
Add > Listener > View Results Tree
對左側的 Thread Group 按右鍵 接著依序選擇
Add > Listener > Aggregate Report
點擊上方工具列的綠色 Star 按鈕 執行 Test Plan
點擊 View Results Tree 查看報告
中間下方的部分 出現了 10 筆 HTTP Request (也就是剛剛所設定的筆數)
任意點擊其中一筆 Request 可在右方的區塊中查看回傳結果的內容
藉此確認回傳內容為測試的預期結果
點擊 Aggregate Report 查看報告
右方的部分 出現了測試結果的彙整數據
Samples:發送請求筆數 (10筆)
Average:平均回應時間 (1120ms)
Median:回應時間的中間值 (830ms)
90% Line:百分之 90 的最高回應時間 (2127ms)
95% Line:百分之 95 的最高回應時間 (2127ms)
99% Line:百分之 99 的最高回應時間 (2575ms)
Min:回應時間的最小值 (322ms)
Maximum:回應時間的最大值 (2575ms)
Error %:執行的錯誤率 (0.00%)
Throughput:吞吐量 (2.7/sec)
Received KB/sec:下載速率 (718.29)
Sent KB/sec:上傳速率 (1.05)
透過指令執行 GUI 所設置完的 jmx 檔案
也就是剛剛所存的 <scriptName>.jmx
$ sh jmeter -n -t <scriptName>.jmx -l <resultName>.jtl -e -o /<folderName>
-n:以非 GUI 的方式執行 JMeter,也就是以 CLI 進行操作
-t:執行測試腳本的路徑,副檔名為 .jmx (testScript.jmx)
-l:記錄測試結果的檔案路徑與名字,副檔名為 .jtl (testResult.jtl)
-e:測試腳本執行完後產生 html 報告
-o:測試腳本 html 報告的資料夾,資料夾必須不存在 (ReportFolder)
當執行過一次 如果在執行一次 將會跳錯誤提示
錯誤的錯誤原因是因為 資料夾已存在An error occurred: Cannot write to '/<folderName>' as folder is not empty
這個時候就要在剛剛的指令加上 -f$ sh jmeter -n -t <scriptName>.jmx -l <resultName>.jtl -f -e -o /<folderName>
-f:在開始執行測試腳本前強制刪除現有的測試結果文件
執行玩指令後 可以到 <folderName>
中找到 index.html 的檔案
下面截圖為小弟的執行結果
這週的內容小弟只是介紹了 JMeter 的皮毛
以一些較常被使用的基本操作與設定 來做介紹與分享
如果有疑問或是有錯誤,還請各位大哥大姐提點。
小弟將繼續往下週邁進。 ─=≡Σ((( つ•̀ω•́)つ
官方網站 (載點)
相關文章