1)Jmeter4.0介紹
jmeter是個純java編寫的開源壓測工具,apache旗下的開源軟件,一開始是設計為web測試的軟件,由于發展迅猛,現在可以壓測許多協議比如:http、https、soap、ftp、database數據庫、LDAP? 輕量目錄訪問協議、TCP、SOMP(簡單郵件協議)等,由于是純java編寫,可以在蘋果、window或者Linux下運行,全功能的測試IDE,允許快速的建立測試計劃(從瀏覽器或本地應用程序,官網地址:http://jmeter.apache.org),Jmeter是一個中高級開發或者測試人員都必須掌握的一個工具。
目前用的常用測試工具對比:
1、loadrunner:性能穩定,壓測結果及細粒度大,可以自定義腳本進行壓測,但是太過于重大,功能比較繁多 2、apache ab(單接口壓測最方便):模擬多線程并發請求,ab命令對發出負載的計算機要求很低,既不會占用很多CPU,也不會占用太多的內存,但卻會給目標服務器造成巨大的負載, 簡單DDOS攻擊等 3、webbench:webbench首先fork出多個子進程,每個子進程都循環做web訪問測試。子進程把訪問的結果通過pipe告訴父進程,父進程做最終的統計結果
2)特點
- 提供GUI圖形界面和非GUI界面進行壓測,在windows下面進行開發測試壓測腳本,然后直接在linux上執行
- 可以提供完整的動態HTML壓測報告
- 純java編寫,一次編寫,四處壓測
- 多線程框架允許通過多個線程同時進行采樣壓測,并通過單獨的線程組同時采樣不同的功能
- 提供高度可擴展的功能,自定義插件:
- 提供函數可用于為測試提供動態輸入或提供數據操作。
- 通過Maven,Graddle和Jenkins的第三方開源庫輕松持續集成
3)準備工作
需要安裝java運行環境,建議安裝JDK環境,雖然JRE也可以,但是壓測https需要JDK里面的 keytool工具;
新版本Jmeter4.0,需要JDK8以上版本,JDK9或者JDK10都可以;并配置好JDK環境(這里就不講配置JDK環境了)
下載對應的Jmeter4.0版本并解壓(官網地址:http://jmeter.apache.org/)
windows系統: http://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-4.0.zip
Mac或者Linux:http://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-4.0.tgz
bin:核心可執行文件,包含配置jmeter.bat: windows啟動文件:jmeter: mac或者linux啟動文件:jmeter-server:mac或者Liunx分布式壓測使用的啟動文件jmeter-server.bat:mac或者Liunx分布式壓測使用的啟動文件jmeter.properties: 核心配置文件examples:壓測腳本文件JMX和動態讀取csv參數文件案例result—template:可視化HTMLtemplate:JMX的模板文件docs:Jmeter的API文檔 extras:插件拓展的包 lib:核心的依賴包 ext:核心包 junit:單元測試包
5)Jmeter核心組件介紹
?
什么是測試計劃(Test plan)?
? ? 就是壓測的一個流程,比如壓測什么接口,并發多少用戶,協議等等,在測試計劃下面配置線程組,采樣器,監聽器等組件
什么是線程組(Thread Group)?
線程組就是模擬多少用戶并發訪問你的應用,這個組里面共有多少用戶,創建方法如上圖現在“添加->threads->線程組“參數說明:線程數:虛擬用戶數。一個虛擬用戶占用一個進程或線程 準備時長(Ramp-Up Period(in seconds)):全部線程啟動的時長,比如100個線程,20秒,則表示20秒內100個線程都要啟動完成,每秒啟動5個線程 循環次數:每個線程發送的次數,假如值為5,100個線程,則會發送500次請求,可以勾選永遠循環
什么是采樣器(Sampler)?
真正干活的組件,采樣器里面配置你要壓測的接口,協議,參數等 可以創建各種采樣器,如Http請求,FTP請求,JDBC壓測數據庫請求,JMS等,對應的采樣器有不同的配置 以http請求采樣器為例名稱:采樣器名稱,一般是接口名稱,方便后續進行區分,比如“login接口”注釋:采樣器的描述,方便別人理解,類似壓測接口描述web服務器配置協議:壓測的協議,比如“http”或者"https"服務器名稱或IP:壓測目標機器的端口或者服務器IP地址,比如 www.xdclass.net端口號:壓測目標機器的端口號,比如 8080HTTP請求配置方法:http的請求方法,常用的有GET,POST,PUT,DELETE,PATCH等路徑:壓測的接口的URL,比如 /api/v1/usersContent encoding:是否進行內容編碼自動重定向:http有302狀態碼返回的時候,重定向,但不會產生記錄,不可以做關聯請求,比如比如第二個請求要用到第一個請求的數據,則選擇自動重定向無法做關聯跟隨重定向:會產生記錄,可以做關聯,默認勾選這個Use multipart/from-data for HTTP POST :當發送POST請求時,使用Use multipart/from-data方法發送,默認不選中。parameters:參數配置Files Upload:文件上傳配置
什么是結果樹?
壓測的結果查看,可以看到壓測發送的url,http參數,返回結果,返回的整個響應,然后如果有斷言或者調試,可以看到斷言是否通過等等 添加路徑: 線程組->添加->監聽器->察看結果樹 如果不添加結果數,則點擊壓測開始按鈕,壓測具體響應我們無法知道,所以需要添加結果數, 一來是方便調試壓測腳本,看請求參數,路徑是否正常 切換到結果數查看頁面,點擊壓測按鈕就可以進壓測,邊壓測可以邊看到請求的結果。
補充個小技巧,就是GUI圖形界面語言版本中英文切換:
1、控制臺修改menu -> options -> choose language 選擇對應的語言版本就可以 2、配置文件修改 bin目錄 -> jmeter.properties默認 #language=en改為 language=zh_CN?
OK,Jmeter4.0壓力測試第一季入門先到這里,
下一站章 會再分享Jmeter高級知識,比如斷言使用,動態讀取CSV參數,壓測Mysql,阿里云Linux環境非GUI界面壓測,分布式壓測等等
視頻教程參考:
? ?https://www.xdclass.net/#/coursecatalogue?video_id=3
?
關注我們,分享前沿動態