1.JMeter 介紹
Apache JMeter是100%純JAVA桌面應用程序,被設計為用於測試客戶端/服務端結構的軟件(例如web應用程序)。它可以用來測試靜態和動態資源的性能,例如:靜態文件,Java Servlet,CGI Scripts,Java Object,數據庫和FTP服務器等等。JMeter可用於模擬大量負載來測試一台服務器,網絡或者對象的健壯性或者分析不同負載下的整體性能。
同時,JMeter可以幫助你對你的應用程序進行回歸測試。通過你創建的測試腳本和assertions來驗證你的程序返回了所期待的值。為了更高的適應性,JMeter允許調用二次開發的jar包來豐富你的測試場景;JMeter允許你使用正則表達式來創建這些assertions.
2.JMeter與LoadRunner比較
JMeter 是一款開源(有着典型開源工具特點:界面不美觀)測試工具,雖然與LoadRunner相比有很多不足,比如:它結果分析能力沒有LoadRunner詳細;很它的優點也有很多:
- 開源,他是一款開源的免費軟件,使用它你不需要支付任何費用,
- 小巧,相比LR的龐大(最新LR11將近4GB),它非常小巧,不需要安裝,但需要JDK環境,因為它是使用java開發的工具。
- 功能強大,jmeter設計之初只是一個簡單的web性能測試工具,但經過不段的更新擴展,現在可以完成數據庫、FTP、LDAP、WebService等方面的測試。因為它的開源性,當然你也可以根據自己的需求擴展它的功能。擴展性極強。它可以測試性能,可以測試接口,甚至可以通過加載瀏覽器驅動完成UI自動化的工作!
兩者最大的區別:jmeter不支持IP欺騙,而LR支持。
從上邊來看Jmeter是好處多多的,但是任何事、任何物都違背不了一個法則,那就是“金無足赤人無完人”,Jmeter也是有不足之處的,下邊我們來看看Jmeter的不足之處,這里宏哥就不深究它到底是娘胎里帶來的還是后天造成的了,一般對於軟件來說都是娘胎里帶來的,先天不足。原因是:開發的時候可能由於某些原因考慮不足,導致其娘胎里帶病。
3.JMeter缺點
使用JMeter無法驗證JS程序,也無法驗證頁面UI,所以要須要和Selenium配合來完成Web2.0應用的測試。
4.下載安裝
4.1JMeter安裝
1.http://jmeter.apache.org/下載最新版本的JMeter,解壓文件到任意目錄
2.安裝JDK,配置環境變量JAVA_HOME
3.系統要求:JMeter2.11 需要JDK1.6以上的版本支持運行
4.JMeter可以運行在如下操作系統上:Unix,Windows和Open VMS.
5.應當避免jdk路徑與jmeter路徑有中文和空格,否則會有異常,也會導致遠程測試出現問題。
4.2JMeter插件安裝
1. 插件下載地址: http://jmeter-plugins.org/downloads/all/
2. 插件下載后解壓:找到JMeterPlugins-Extras.jar,把JMeterPlugins-Extras.jar放到apache-jmeter-2.12\lib\ext目錄。
5.JMeter運行
5.1JMeter啟動的兩種姿勢
5.1.1啟動姿勢1
進入bin目錄,雙擊運行jmeter.bat啟動jmeter
注意:打開的時候會有兩個窗口,JMeter的命令窗口和JMeter的圖形操作界面,不可以關閉命令窗口。
5.1.2啟動姿勢2
進入bin目錄,雙擊ApacheJmeter.jar包運行
注意:打開的時候會有只有一個窗口,JMeter的圖形操作界面,和上邊的不一樣哈。
6.JMeter目錄結構解析
6.1根目錄
Jmeter安裝包解壓后的根目錄如下圖:
6.2根目錄說明(由上到下)
實際開始安裝解壓后是不存在這個目錄的,這個是由於宏哥使用過JMeter后,JMeter自動創建這個目錄,然后備份了腳本文件。
- Jmeter.bat:是啟動jmeter的主腳本。
- Jmeter-server.bar:是用來實現聯機負載。
- Jmeter.properties:是jmeter主要的配置文件,超過80%的配置項都是通過這個文件實現。(PS:修改配置文件后,要重啟Jmeter才能生效)
該目錄存放的是jmeter官方提供的幫助文檔。printable_docs的demos子目錄下有一些常用的JMeter腳本案例,可以作為參考。可打印半版本目錄。
(8)LICENSE JMeter ——許可說明
(9)NOTICE JMeter ——簡單信息說明
(10) README.md ——JMeter 官方基本介紹
6.3打開backup,如下圖:
6.4打開bin,如下圖:
examples:目錄下包含Jmeter使用實例,打開里面是一個csv樣例
ApacheJMeter.jar:JMeter源碼包
jmeter.bat:windows的啟動文件
jmeter.log:Jmeter運行日志文件
jmeter.sh:linux的啟動文件
jmeter.properties:系統配置文件
jmeter-server.bat:windows分布式測試要用到的服務器,啟動負載生成器服務文件
jmeter-server:Linux下啟動負載生成器文件
shutdown.cmd windows 下 jmeter 關閉文件
stoptest.cmd windows 下 jmeter 測試停止文件
6.5打開docs,如下圖:
api:api文件以及css和圖像樣式
6.6打開lib,如下圖:
此文件夾里面全是一些jar包
7.JMeter主要配置文件
7.1jmeter.properties配置文件
jmeter.properties,定義jmeter運行的關鍵配置;下邊宏哥列舉了一下這個文件的關鍵配置如下:
#默認語言設置
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
7.2system.properties配置文件
system.properties,定義Java進程的系統變量,通過System.getProperties()可查詢。
7.3user.properties配置文件
user.properties,自定義配置,可覆蓋jmeter.properties。
7.4拓展
1.配置文件可能存在優先級關系,好像user.properties會覆蓋jmeter.properties,一般修改配置都是修改或者添加user.properties,不建議修改jmeter.properties
2.通過修改reportgenerator.properties的下面配置,可以減少采樣時間,增加采樣精度。生成的報告的其他內容也可以在這里修改。當然,建議這些修改,都放到user.properties里面去
3. 修改jmeter.properties里的這些配置,可以控制報告DashBoard的顯示時間,建議這些配置放到user.properties里面去
4.輸出的控制報告的顯示時間如下:
8.小結
好了,今天有關JMeter的知識就分享到這里吧,謝謝大家的閱讀,如果您覺得還可以就給個推薦唄!!!
您的肯定就是我進步的動力。如果你感覺還不錯,就請鼓勵一下吧!記得隨手點波 推薦 不要忘記哦!!!
別忘了點 推薦 留下您來過的痕跡