分布式压测系列之Jmeter4.0第一季
1)Jmeter4.0介紹
jmeter是個(gè)純java編寫的開源壓測工具,apache旗下的開源軟件,一開始是設(shè)計(jì)為web測試的軟件,由于發(fā)展迅猛,現(xiàn)在可以壓測許多協(xié)議比如:http、https、soap、ftp、database數(shù)據(jù)庫、LDAP? 輕量目錄訪問協(xié)議、TCP、SOMP(簡單郵件協(xié)議)等,由于是純java編寫,可以在蘋果、window或者Linux下運(yùn)行,全功能的測試IDE,允許快速的建立測試計(jì)劃(從瀏覽器或本地應(yīng)用程序,官網(wǎng)地址:http://jmeter.apache.org),Jmeter是一個(gè)中高級(jí)開發(fā)或者測試人員都必須掌握的一個(gè)工具。
目前用的常用測試工具對比:
1、loadrunner:性能穩(wěn)定,壓測結(jié)果及細(xì)粒度大,可以自定義腳本進(jìn)行壓測,但是太過于重大,功能比較繁多 2、apache ab(單接口壓測最方便):模擬多線程并發(fā)請求,ab命令對發(fā)出負(fù)載的計(jì)算機(jī)要求很低,既不會(huì)占用很多CPU,也不會(huì)占用太多的內(nèi)存,但卻會(huì)給目標(biāo)服務(wù)器造成巨大的負(fù)載, 簡單DDOS攻擊等 3、webbench:webbench首先fork出多個(gè)子進(jìn)程,每個(gè)子進(jìn)程都循環(huán)做web訪問測試。子進(jìn)程把訪問的結(jié)果通過pipe告訴父進(jìn)程,父進(jìn)程做最終的統(tǒng)計(jì)結(jié)果2)特點(diǎn)
- 提供GUI圖形界面和非GUI界面進(jìn)行壓測,在windows下面進(jìn)行開發(fā)測試壓測腳本,然后直接在linux上執(zhí)行
- 可以提供完整的動(dòng)態(tài)HTML壓測報(bào)告
- 純java編寫,一次編寫,四處壓測
- 多線程框架允許通過多個(gè)線程同時(shí)進(jìn)行采樣壓測,并通過單獨(dú)的線程組同時(shí)采樣不同的功能
- 提供高度可擴(kuò)展的功能,自定義插件:
- 提供函數(shù)可用于為測試提供動(dòng)態(tài)輸入或提供數(shù)據(jù)操作。
- 通過Maven,Graddle和Jenkins的第三方開源庫輕松持續(xù)集成
3)準(zhǔn)備工作
需要安裝java運(yùn)行環(huán)境,建議安裝JDK環(huán)境,雖然JRE也可以,但是壓測https需要JDK里面的 keytool工具;
新版本Jmeter4.0,需要JDK8以上版本,JDK9或者JDK10都可以;并配置好JDK環(huán)境(這里就不講配置JDK環(huán)境了)
下載對應(yīng)的Jmeter4.0版本并解壓(官網(wǎng)地址:http://jmeter.apache.org/)
windows系統(tǒng): 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
5)Jmeter核心組件介紹
?
什么是測試計(jì)劃(Test plan)?
? ? 就是壓測的一個(gè)流程,比如壓測什么接口,并發(fā)多少用戶,協(xié)議等等,在測試計(jì)劃下面配置線程組,采樣器,監(jiān)聽器等組件什么是線程組(Thread Group)?
線程組就是模擬多少用戶并發(fā)訪問你的應(yīng)用,這個(gè)組里面共有多少用戶,創(chuàng)建方法如上圖現(xiàn)在“添加->threads->線程組“參數(shù)說明:線程數(shù):虛擬用戶數(shù)。一個(gè)虛擬用戶占用一個(gè)進(jìn)程或線程 準(zhǔn)備時(shí)長(Ramp-Up Period(in seconds)):全部線程啟動(dòng)的時(shí)長,比如100個(gè)線程,20秒,則表示20秒內(nèi)100個(gè)線程都要啟動(dòng)完成,每秒啟動(dòng)5個(gè)線程 循環(huán)次數(shù):每個(gè)線程發(fā)送的次數(shù),假如值為5,100個(gè)線程,則會(huì)發(fā)送500次請求,可以勾選永遠(yuǎn)循環(huán)什么是采樣器(Sampler)?
真正干活的組件,采樣器里面配置你要壓測的接口,協(xié)議,參數(shù)等 可以創(chuàng)建各種采樣器,如Http請求,FTP請求,JDBC壓測數(shù)據(jù)庫請求,JMS等,對應(yīng)的采樣器有不同的配置 以http請求采樣器為例名稱:采樣器名稱,一般是接口名稱,方便后續(xù)進(jìn)行區(qū)分,比如“l(fā)ogin接口”注釋:采樣器的描述,方便別人理解,類似壓測接口描述web服務(wù)器配置協(xié)議:壓測的協(xié)議,比如“http”或者"https"服務(wù)器名稱或IP:壓測目標(biāo)機(jī)器的端口或者服務(wù)器IP地址,比如 www.xdclass.net端口號(hào):壓測目標(biāo)機(jī)器的端口號(hào),比如 8080HTTP請求配置方法:http的請求方法,常用的有GET,POST,PUT,DELETE,PATCH等路徑:壓測的接口的URL,比如 /api/v1/usersContent encoding:是否進(jìn)行內(nèi)容編碼自動(dòng)重定向:http有302狀態(tài)碼返回的時(shí)候,重定向,但不會(huì)產(chǎn)生記錄,不可以做關(guān)聯(lián)請求,比如比如第二個(gè)請求要用到第一個(gè)請求的數(shù)據(jù),則選擇自動(dòng)重定向無法做關(guān)聯(lián)跟隨重定向:會(huì)產(chǎn)生記錄,可以做關(guān)聯(lián),默認(rèn)勾選這個(gè)Use multipart/from-data for HTTP POST :當(dāng)發(fā)送POST請求時(shí),使用Use multipart/from-data方法發(fā)送,默認(rèn)不選中。parameters:參數(shù)配置Files Upload:文件上傳配置什么是結(jié)果樹?
壓測的結(jié)果查看,可以看到壓測發(fā)送的url,http參數(shù),返回結(jié)果,返回的整個(gè)響應(yīng),然后如果有斷言或者調(diào)試,可以看到斷言是否通過等等 添加路徑: 線程組->添加->監(jiān)聽器->察看結(jié)果樹 如果不添加結(jié)果數(shù),則點(diǎn)擊壓測開始按鈕,壓測具體響應(yīng)我們無法知道,所以需要添加結(jié)果數(shù), 一來是方便調(diào)試壓測腳本,看請求參數(shù),路徑是否正常 切換到結(jié)果數(shù)查看頁面,點(diǎn)擊壓測按鈕就可以進(jìn)壓測,邊壓測可以邊看到請求的結(jié)果。補(bǔ)充個(gè)小技巧,就是GUI圖形界面語言版本中英文切換:
1、控制臺(tái)修改menu -> options -> choose language 選擇對應(yīng)的語言版本就可以 2、配置文件修改 bin目錄 -> jmeter.properties默認(rèn) #language=en改為 language=zh_CN? OK,Jmeter4.0壓力測試第一季入門先到這里,下一站章 會(huì)再分享Jmeter高級(jí)知識(shí),比如斷言使用,動(dòng)態(tài)讀取CSV參數(shù),壓測Mysql,阿里云Linux環(huán)境非GUI界面壓測,分布式壓測等等
視頻教程參考:
? ?https://www.xdclass.net/#/coursecatalogue?video_id=3
?
關(guān)注我們,分享前沿動(dòng)態(tài)
轉(zhuǎn)載于:https://www.cnblogs.com/xdclass/p/8709932.html
總結(jié)
以上是生活随笔為你收集整理的分布式压测系列之Jmeter4.0第一季的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java jol原理_Java对象布局(
- 下一篇: Hive学习之路 (一)Hive初识