Jmeter 全程實戰(一)簡介
一、Jmeter 介紹
Apache JMeter 是100%純 JAVA 桌面應用程式,被設計為用於測試客戶端/服務端結構的軟體(例如 web 應用程式)。它可以用來測試靜態和動態資源的效能,例如:靜態檔案,Java Servlet,CGI Scripts,Java Object,資料庫和 FTP 伺服器等等。JMeter 可用於模擬大量負載來測試一臺伺服器,網路或者物件的健壯性或者分析不同負載下的整體效能。
同時,JMeter 可以幫助你對你的應用程式進行迴歸測試。通過你建立的測試指令碼和 assertions 來驗證你的程式返回了所期待的值。為了更高的適應性,JMeter 允許呼叫二次開發的jar包來豐富你的測試場景;JMeter 允許你使用正則表示式來建立這些 assertions.
缺點:使用 JMeter 無法驗證 JS 程式,也無法驗證頁面 UI,所以要須要和 Selenium 配合來完成 Web2.0 應用的測試。
官方文件:https://jmeter.apache.org/download_jmeter.cgi
二、JMeter 下載安裝
1. Jmeter 安裝
-
https://jmeter.apache.org/download_jmeter.cgi 下載最新版 JMeter 二進位制zip檔案,解壓檔案到任意目錄
-
安裝 JDK,配置環境變數 JAVA_HOME.
-
系統要求:JMeter4.0 需要 JDK1.8 以上的版本支援執行
-
注:應當避免 jdk 路徑與 jmeter 路徑有中文和空格,否則會有異常,也會導致遠端測試出現問題。
2. Jmeter 外掛安裝
-
外掛下載後解壓:找到 JMeterPlugins-Extras.jar,把 JMeterPlugins-Extras.jar 放到 apache-jmeter-2.12\lib\ext 目錄。
三、Jmeter 執行
1. 進入bin目錄,雙擊執行 jmeter.bat 啟動 jmeter
注意:開啟的時候會有兩個視窗,JMeter的命令視窗和JMeter的圖形操作介面,不可以關閉命令視窗。
2. 進入bin目錄,雙擊ApacheJmeter.jar包執行
注意:開啟的時候會有隻有一個視窗,JMeter的圖形操作介面
四、JMeter 目錄結構
1. bin:所有可執行程式
-
examples:目錄下包含 Jmeter 使用例項
-
jmeter.bat:windows 的啟動檔案
-
jmeter.sh:linux的啟動檔案
-
jmeter-server:Linux下啟動負載生成器檔案
-
jmeter-server.bat:windows 分散式測試要用到的伺服器,啟動負載生成器服務檔案
-
jmeter.properties:是 jmeter 主要的配置檔案,超過80%的配置項都是通過這個檔案實現。(PS:修改配置檔案後,要重啟 jmeter 才能生效)
-
jmeter.log:Jmeter執行日誌檔案,jmeter 使用的日誌檔名稱被定義到 jmeter.properties 中,預設在 jmeter.log 可檢視日誌
-
shutdown.cmd:windows 下 jmeter 關閉檔案
-
stoptest.cmd:windows 下 jmeter 測試停止檔案
2. docs:介面文件目錄,包括 api檔案以及css和影象樣式
3. extras:額外小工具
該目錄下的檔案提供了對構建工具Ant的支援,可以使用Ant來實現測試自動化,例如批量指令碼執行,產生HTML格式的報表,測試執行時,可以把測試資料記錄下來,Jmeter會自動生成一個.jtl檔案,將該檔案放到extras目錄下,執行“ant -Dtest=檔名 report”,就可以生成測試統計報表。也可以用於持續整合。
4. lib:核心 jar 包
該目錄包含兩個子目錄,其中 ext 子目錄存放有 JMeter 的核心 jar 包,另一個 junit 子目錄存放 JUnit 測試指令碼。使用者擴充套件所依賴的 jar 包,應該直接放到 lib 目錄下,而非 lib/ext 下。
5. licenses:使用者證書目錄
6. printable_docs:使用者使用手冊
printable_docs 的 usermanual 子目錄下的內容是 JMeter 的使用者手冊文件,其中 component_reference.html 是最常用到的核心元件幫助文件。
7. LICENSE: JMeter 許可說明
8. NOTICE: JMeter 簡單資訊說明
9. README.md: JMeter 官方基本介紹
五、Jmeter 主要配置檔案
1. jmeter.properties 配置檔案
jmeter.properties 定義了 jmeter 執行的關鍵配置
jmeter.properties 常見配置
#預設語言設定
language=en
#捕捉cookie開關
CookieManager.save.cookies=true
#配置編輯器的字型和尺寸
jsyntaxtextarea.font.family=宋體
jsyntaxtextarea.font.size=20
#配置預設編碼格式
sampleresult.default.encoding=UTF-8
#SSL 配置:重點關注下面幾個配置# 指定 HTTPS 協議層
# 指定 HTTPS 協議層
https.default.protocol=TLS
# 指定 SSL 版本,實際應用中可能需要修改
https.default.protocol=SSLv3
# 設定啟動的協議
https.socket.protocols=SSLv2Hello SSLv3 TLSv1
# 快取控制,控制 SSL 是否可以在多個迭代中重用
https.use.cached.ssl.context=true
#JMeter 測試專案自動備份配置
# 設定是否啟用自動備份,預設是 true
jmeter.gui.action.save.backup_on_save=true
# 設定自動備份目錄,預設備份至 JMeter 根目錄的 backups下
jmeter.gui.action.save.backup_directory=
# 設定自動備份專案數,預設為最近 10 個
jmeter.gui.action.save.keep_backup_max_count=10
#遠端主機配置
# 配置遠端主機的 IP,預設為本機。用逗號","可以設定多個遠端主機
remote_hosts=127.0.0.1
# 多個遠端主機指定示例如下,其中:後為埠
remote_hosts=127.0.0.1:1099,127.0.0.1:1200,127.0.0.1:1300
對於 RMID 的配置請直接看配置檔案中的選項說明
#日誌管理配置
# 設定日誌格式
log_format_type=default
# 設定日誌輸出級別
log_level.jmeter=INFO
# 設定 junit 日誌輸出級別
log_level.jmeter.junit=DEBUG
# 設定日誌輸出目標檔案,預設為 jmeter.log
log_file=jmeter.log
# jmeter.bat 關鍵配置修改
#為了更優化的使用 jmeter,需要對 jmeter.bat 中的一些配置根據當前機器的配置進行優化,這裡進行關鍵配置項說明,大家根據自己的機器的配置來進行修改。jvm 相關配置,大概在 80 行左右,找到這些配置,對其中的數值根據當前機器的硬體配置來修改。
set HEAP=-Xms2048m -Xmx2048m
set NEW=-XX:NewSize=512m -XX:MaxNewSize=512m
set SURVIVOR=-XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=50%
set TENURING=-XX:MaxTenuringThreshold=2
if %current_minor% LEQ "8" (
rem Increase MaxPermSize if you use a lot of Javascript in your Test Plan :
set PERM=-XX:PermSize=512m -XX:MaxPermSize=1024m)
# 設定輸出報告模板格式
jmeter.save.saveservice.output_format = csv
2. system.properties 配置檔案
system.properties,定義Java程序的系統變數,通過System.getProperties()可查詢。
3. user.properties 配置檔案
user.properties,自定義配置,可覆蓋jmeter.properties。