本文主要介紹一下常用的兩款測試工具:
- 性能測試壓測工具-Jmeter
- 性能測試監控工具-JProfiler
1. 性能測試壓測工具-Jmeter
1.2 Jmeter簡介
JMeter,一個100%的純Java桌面應用,由Apache組織的開放源代碼項目,它是功能和性能測試的工具。具有高可擴展性、支持Web(HTTP/HTTPS)、SOAP、FTP、JAVA等多種協議的特點。
Jmeter官網: http://jmeter.apache.org/
目前最新版本的jmeter爲3.3版本,要求jdk版本爲1.8
下載地址:http://jmeter.apache.org/download_jmeter.cgi
Jdk版本爲1.7的,可以下載3.1版本,功能基本一致
下載地址:https://archive.apache.org/dist/jmeter/binaries/
1.3 Jmeter安裝
下載Jmeter後,直接解壓,在bin目錄下,雙擊jmeter.bat
1.4 使用說明
1.4.1 創建一個線程組
添加線程組並設置參數大小:測試計劃->添加->Threads ->線程組
1.4.2 創建一個Http請求(GET)
添加HTTP請求:線程組下添加->Sampler ->HTTP請求
注意:同一個線程組內的多個請求是順序執行的,不同線程組的請求的並行執行的
1.4.3 創建一個Http請求(POST)
添加HTTP請求:線程組下添加->Sampler ->HTTP請求
1.4.4 給請求添加header
添加響應斷言:HTTP請求->添加->配置元件->HTTP信息頭管理器
1.4.5 給請求添加一個斷言
添加響應斷言:HTTP請求->添加->斷言 ->響應斷言
1.4.6 查看請求返回結果
添加查看結果樹: HTTP請求-監聽器-查看結果樹
1.4.7 腳本參數化設置-內置函數
爲了使測試數據動態化,更真實的模擬用戶請求,需要對接口數據做參數化
Jmeter的函數助手裏,有全部的函數以及相關文檔
常用的內置函數:
- 隨機數:__Random
- 隨機字符串: __RandomString
- 時間戳:__time
- UUID:__UUID
1.4.8 腳本參數化設置-CSV Data Set Config
添加CSV Data Set Config :線程組->添加->配置元件 -> CSV Data Set Config
1.4.9 參數化引用
在HTTP請求裏,把需要做參數化的參數值,用${參數名}代替
1.4.10 Jmeter關聯-數據提取
工作中經常有這種測試需求:接口B的參數來源於接口A的返回值,這個時候如果要測試接口B,就需要先把A接口的數據提取出來
步驟:
1、先添加接口A的請求,A請求的返回值爲{"skuId":123,"price":93.0,"stock":1977,"opt":abc,"result":true}
2、在A請求內部創建一個後置處理器-JSON Extractor,按照下圖填寫
解釋
Variable name:定義一個變量,存儲提取的數據
JSON Path expressions:json表達式,用$代表整個json數據,$.stock標識json字符串中key爲stock的值
Match Number:匹配數字,根據json表達式匹配出的數據可能有多個,這個數字表示獲取第幾個,如1代表匹配出的第一個數據;0代表隨機一個數據
3、添加請求B,在B請求的url中,直接用${參數名}來代表JSON提取器中定義的參數,如
1.4.11 Jmeter測試結果分析-聚合報告
1.4.12 Jmeter命令行模式
在GUI模式下進行壓測,Jmeter本身的性能開銷非常大,因此官方建議真正壓測時在非GUI模式下進行
所以一般選擇在Linux下,或windows命令行下執行壓測
GUI模式下,可以先把修改下jmeter的bin目錄下jmeter.properties
summariser.interval=10(實時展示性能數據的間隔時間s)
在GUI模式下先把jmx腳本創建並調試好,然後在命令行下執行命令:
jmeter -n –t test.jmx -l result.jtl
-n: 命令行模式
-t:jmx腳本路徑
-l:測試結果文件路徑
命令行模式下結果分析:
1、通過查看控制檯日誌
2、使用聚合報告打開測試生成的jtl文件,也可以獲取到性能數據
3、根據jtl文件生成HTML報表
使用報表前先修改Jmeter的bin目錄下reportgenerator.properties
修改jmeter.reportgenerator.overall_granularity=1000(報表統計的間隔時間)
執行以下命令後,就會在當前目錄下的output文件夾中生產html報表
jmeter –g test.jtl –o ./output
下載到本地用瀏覽器打開即可查看報告
TPS趨勢圖:
平均響應時間趨勢圖:
2. 性能監控分析工具-Jprofiler
2.1 Jprofiler簡介
JProfiler是一個商業授權的Java剖析工具,由EJ技術有限公司,針對Java EE和Java SE應用程序開發的。
Jprofiler主要有兩部分組成:客戶端和Server端
注意:Jprofiler server端啓動後對Java程序的性能影響較大,所以不能作爲常規性的監控工具,只能在排查問題時使用
2.2 Jprofiler安裝和配置
2.2.1 服務端安裝配置
1.安裝
在服務器上安裝JProfiler9.1.1 server端
rmp –ivh jprofiler_linux_9_1_1.rpm
安裝成功後,jprofiler默認安裝在了/opt/jprofiler9目錄下
2.配置
在tomcat的catalina.sh,把以下參數添加到JVM參數配置的地方,如
JAVA_OPTS="$JAVA_OPTS -agentpath:/opt/jprofiler9/bin/linux-x64/libjprofilerti.so=port=8849,nowait"
配置好後重啓tomcat
2.2.2 客戶端安裝配置
1. 在windows下安裝好jprofiler_windows_9_1_1.exe
2. 啓動Jprofiler,按照以下步驟操作
2.3 Jprofiler運行界面和常用功能