簡介
JMeter是Apache開發的基於Java的壓力測試工具。用於對軟件做壓力測試,最初用於Web應用測試,但後來擴展到其他測試領域。 它可以用於測試靜態和動態資源,例如靜態文件、Java 小服務程序、CGI 腳本、Java 對象、數據庫、FTP 服務器, 等等。JMeter 可以用於對服務器、網絡或對象模擬巨大的負載,來自不同壓力類別下測試它們的強度和分析整體性能。另外,JMeter能夠對應用程序做功能/迴歸測試,通過創建帶有斷言的腳本來驗證你的程序返回了你期望的結果。為了最大限度的靈活性,JMeter允許使用正則表達式創建斷言。
JMeter可以用於對靜態的和動態的資源(文件,Servlet,Perl腳本,java 對象,數據庫和查詢,FTP服務器等等)的性能進行測試。它可以用於對服務器、網絡或對象模擬繁重的負載來測試它們的強度或分析不同壓力類型下的整體性能。你可以使用它做性能的圖形分析或在大併發負載測試你的服務器、腳本、對象。
配置jdk
我的電腦-->鼠標右鍵-->屬性-->高級系統設置-->高級-->環境變量
(1) 新建->變量名"JAVA_HOME",變量值"C:\Program Files (x86)\Java\jdk1.8.0_144"(即JDK的安裝路徑)
(2) 編輯->變量名"Path",在原變量值的最後面加上“;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin”
(3) 新建->變量名“CLASSPATH”,變量值“.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar”
(4) Windows+R,輸入cmd打開控制檯,輸入java -version查看版本
運行jmeter
進入D:\apache-jmeter-3.3\bin目錄,運行jmeter.bat文件
1.添加線程組
區域一:在取樣器錯誤後要執行的動作
繼續:繼續執行接下來的操作
Start Next Thread Loop:忽略錯誤,執行下一個循環
停止線程:退出該線程(不在進行此線程的任何操作)
停止測試:等待當前執行的採樣器結束後,結束整個操作
Stop Test Now:直接停止整個測試
區域二:線程屬性
線程數:模擬的用戶量,一個線程表示一個請求
Ramp-Up Period(in seconds):達到指定線程數所需要的時間,如果線程數為100,此處設置為10,即表示每秒啟動10個線程數。
循環次數:執行的次數,選中永遠會一直執行下去
區域三:調度器
啟動時間:線程下的接口的啟動時間
結束時間:線程下的接口的結束時間
持續時間:從線程的啟動時間開始算起,到持續時間之後結束
延遲之間:從線程的啟動時間開始算起,延遲N秒之後開始執行
2.添加http請求
右鍵線程組-->添加-->sampler-->http請求
Parameters和Body Data參數化的區別:
Parameters:post和get請求都會用到,鏈接地址中顯示xx=xx&xx=xxx
Body Data:json格式的請求
(備註:json格式的請求需添加http信息頭管理器)
3.http信息頭管理器
右鍵線程-->添加-->配置原件-->http信息頭管理器
如何添加內容:
1)打開要測試的系統,F12之後,隨便請求一個頁面
2)查看network-->header-->Request Header將Accept,Accept-Encoding,Accept-Language,Content-Type,User-Agent複製進去
添加信息頭管理器的作用:
模擬一個瀏覽器請求
4.察看結果樹
主要顯示接口返回數據和結果
5.圖形結果
樣本數據:服務器接收的請求數
最新樣本:最後一個請求的響應時間(單位:ms)
平均:總運行時間除以發送到服務器的請求數量
偏離:服務器響應時間變化,偏離值越大說明系統越不穩定
吞吐量:服務器每分鐘處理的請求數,吞吐量越大說明服務器的處理事務的能力和效率越強
中值:表示50%的服務器響應時間低於該值,50%的服務器響應時間高於該值
6.用表格察看結果
Sample:線程序號
Start Time:線程請求開始時間
Label:線程請求名稱
Sample Times(ms):請求響應時間
Status:請求響應時間
Bytes:請求的大小
Latency:請求延遲時間
Connect Time:請求連接時間
7.聚合報告
各接口的最大,最小,平均響應時間