JMeter 是 Apache 組織使用 Java 開發的一款測試工具 ,它最初被設計用於Web應用測試,但后來擴展到其他測試領域。
-
它可以用於測試靜態和動態資源,例如靜態文件、Java 小服務程序、CGI 腳本、Java 對象、FTP 服務器, 等等。
-
JMeter 可以用於對服務器、網絡或對象模擬巨大的負載,來自不同壓力類別下測試它們的強度和分析整體性能。
-
另外,JMeter能夠對應用程序做功能/回歸測試,通過創建帶有斷言的腳本來驗證你的程序返回了你期望的結果。為了最大限度的靈活性,JMeter允許使用正則表達式創建斷言。
1. 接口測試
2. 性能測試
3. Web自動化測試
4. 數據庫測試
5. JAVA程序測試
優點:
1. 開源免費,擴展性強,可以基於JMeter現有實現,實現功能拓展
2. 跨平台
3. 支持多協議
4. 小巧
5. 功能強大
缺點:
1. 不支持 IP 欺騙(LoadRunner 支持IP欺騙)
2. 不能直接測試前端
下載: https://jmeter.apache.org/download_jmeter.cgi
安裝: 直接解壓縮即可
配置: 考慮到中文亂碼問題,請先修改編碼集
**需求:** 使用 JMeter 訪問學生管理系統的查詢學院信息接口
1)、啟動 JMeter 並搭建基本應用框架(固定流程)
測試計划下添加線程組
組件: 是 Jmeter 中的一些功能點實現(比如: 線程組、http請求、查看結果樹 .....),每個組件都對應一定的功能實現
元件: 對組件按照性質歸類分組,作用:方便管理組件
2.1 概念(記住)
進程:正在運行的程序 = 程序啟動,進程創建,程序退出,進程釋放
線程:進程中的執行線索 = 游戲中,能動的角色 或者 迅雷每一部電影下載,底層都對應一個線程實現
線程組:對線程按照性質歸類分組 = 比如: 植物大戰僵屍,划分三組能量組、攻擊組、破壞組
層級關系:進程 > 線程組 > 線程 (一個進程包含多個線程組,一個線程組包含多個線程)
並發執行:程序中的多個線程同時執行 = 多部電影下載 = 線程結束順序與啟動順序不一定一致
順序執行:程序中的多個線程按照先后順序依次執行 = 電影先下載完畢,然后再播放 = 線程結束順序與啟動順序一致
方便管理線程
2.3 實現_層級關系&執行順序
層級結構
獨立運行每個線程組
線程數設置為 10 循環次數設置為1, 與線程數設置為1 循環次數設置為 10,執行結果一致,有區別嗎?
答: 有區別,線程一般用於模擬虛擬用戶,前者:測試場景是 10 個用戶,每個用戶訪問一次服務器;而后者:測試場景是一個用戶循環訪問10次服務器
tearDown:最后執行的線程組,一般用於資源卸載操作
PS: Jmeter 實現接口自動化測試時,會調用這兩個線程組
前提: 查看結果樹組件添加位置不同,對應生效的取樣器也不一樣
-
添加在測試計划下: 對所有線程組的所有取樣器生效
-
添加在線程組下: 只對當前組內的取樣器生效
-
添加在取樣器下: 只對當前直接父級取樣器生效
優化策略:
-
可以創建一個單獨的變量封裝,工具的安裝路徑
-
在 PATH 當中,不是直接設置持續的安裝路徑,而是調用變量
-
以后程序安裝路徑發生改變時,只需要修改步驟1的變量,不需要直接操作 PATH
5 實現_配置JMETER環境變量
后期分布式等操作介紹時,會使用到PATH變量,需要在命令行調用部分實現,需要將:
前提: 需要大家配置 JMETER_HOME
%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;
%JMETER_HOME%\lib\jorphan.jar;
%JMETER_HOME%\lib\logkit-2.0.jar;
上述三個 jar 文件配置進 PATH