一.概述
- Apache公司使用JAVA開發(fā)的一款測試工具
- 高效起趾,功能強大班巩;模擬一些高并發(fā)或者多次循環(huán)等特殊場景
- bin:存儲了Jmeter的可執(zhí)行程序查近,比如啟動程序锨咙;lib:存儲了Jmeter整合的功能
啟動方式1:bin/ApacheJmeter .jar 雙擊
啟動方式2:jmeter.bat windows下的啟動程序
啟動方式3:jmeter.sh linux下的啟動程序 - 作用:
接口測試语卤,性能測試(內(nèi)在 --- 程序的算法,比如程序響應時間)酪刀,壓力測試(外在 --- 外在負載粹舵,比如高并發(fā)人數(shù)),web自動化測試骂倘,數(shù)據(jù)庫測試眼滤,Java程序測試
優(yōu)點:1.開源,免費历涝;2.支持多協(xié)議 --- http,https,ftp,ftps诅需;3.小巧漾唉;4.功能強大
缺點:1.不支持IP欺騙;2.不支持前端測試堰塌;
二赵刑、組件:線程組
A.是什么
進程:一個正在運行的程序就是一個進程
線程:進程中的執(zhí)行線索(一個進程有多個執(zhí)行線索)
線程組:按照線程性質對線程進行分組
并發(fā)執(zhí)行:多個線程同時執(zhí)行,線程結束的順序和線程啟動的順序不一定一致
順序執(zhí)行:按照線程的啟動順序挨個執(zhí)行
B.為什么
方便管理
C.怎么用(基本使用)
C-1.三者關系:進程有多個線程組场刑,線程組可以有多個線程
? ?---進程:測試計劃
? ?---線程組:線程組
? ?---線程:線程組屬性的線程數(shù)
C-2.默認情況下般此,線程組中的線程是并發(fā)執(zhí)行的,每一個線程都要執(zhí)行組內(nèi)的http請求
C-3.順序執(zhí)行:在測試計劃中選擇獨立運行每個線程組
D.線程組優(yōu)化
可以使用http請求默認值抽取線程組共同的IP牵现,端口铐懊,協(xié)議,編碼集等信息
1.測試計劃 ——> 配置元件 ——> http請求默認值
作用:通過復用屬性簡化實現(xiàn)瞎疼,提高效率
E.線程組高級(初始化與銷毀線程組)
E-1.線程組屬性
屬性1:線程數(shù) ---- 模擬用戶數(shù)
屬性2:時間值 ---- 在指定時間內(nèi)啟動所有線程
屬性3:循環(huán)數(shù) ---- 單個用戶訪問次數(shù)
E-2.調(diào)度器
1.循環(huán)次數(shù)設置為永遠
2.設置啟動延遲X和持續(xù)時間Y:在X秒后訪問服務器科乎,并且持續(xù)Y秒
3.設置啟動時間M和結束時間N:在M時間開始訪問,在N時間結束
--------2和3不能同時使用---------
組件:參數(shù)化概述
A.是什么
動態(tài)地獲取并設置數(shù)據(jù)
B.為什么
執(zhí)行批量操作的時候贼急,每執(zhí)行一次都需要修改一次喜喂,效率低,參數(shù)化就是以程序代替人工獲取并設置數(shù)據(jù):安全+高效
參數(shù)化實現(xiàn)之CSV Date Set Config
A.是什么
Jmeter參數(shù)化實現(xiàn)組件之一
B.為什么
通過這個組件可以動態(tài)獲取并設置數(shù)據(jù)竿裂,實現(xiàn)類似批量添加操作(執(zhí)行一次玉吁,將多條數(shù)據(jù)插入到數(shù)據(jù)庫)
C.怎么用
C-1、實現(xiàn)思想
- 編寫添加框架腻异,設置循環(huán)次數(shù)进副,JSON數(shù)據(jù)格式固定,值先不寫悔常;
- 編寫一個外部的文本文檔影斑,存儲要添加的數(shù)據(jù);
- Jmeter添加一個參數(shù)化組件CSV Date Set Config机打,每次循環(huán)時都讀取外部文檔的一行數(shù)據(jù)矫户,再將字段分別設置進要提交的JSON數(shù)據(jù)中
C-2、實現(xiàn)方法
- 線程組設置循環(huán)次數(shù)残邀,線程組下插入的HTTP請求負責插入數(shù)據(jù)
- 創(chuàng)建一個文本文檔皆辽,標準的CSV格式文件,每一行數(shù)據(jù)對應文檔一條記錄芥挣,不同字段之間使用英文 , 分隔
- 創(chuàng)建一個CSV元件驱闷,聲明數(shù)據(jù)源以及編碼集以及解析格式
Filename:文件路徑
File encoding:編碼集
Variable Names:變量名
Delimiter:分隔符 - 要將CSV中解析的數(shù)據(jù)設置進JSON格式的數(shù)據(jù)報文,語法${變量名}
? BodyDate中:''鍵'':"${變量名}"
Jmeter組件:線程組實現(xiàn)高級
測試計劃的添加中
Set Up線程組:最先執(zhí)行的線程組----加載程序主體執(zhí)行所需的資源
Tear Down:最后執(zhí)行的線程組----程序正式關閉之前空免,可以將數(shù)據(jù)保存進內(nèi)存