jmeter是個(gè)純java編寫的開源壓測(cè)工具,apache旗下的開源軟件,一開始是設(shè)計(jì)為web測(cè)試的軟件,由于發(fā)展迅猛,現(xiàn)在可以壓測(cè)許多協(xié)議比如:http、https、soap、ftp、database數(shù)據(jù)庫(kù)、LDAP 輕量目錄訪問(wèn)協(xié)議、TCP、SOMP(簡(jiǎn)單郵件協(xié)議)等,由于是純java編寫,可以在蘋果、window或者Linux下運(yùn)行,全功能的測(cè)試IDE,允許快速的建立測(cè)試計(jì)劃(從瀏覽器或本地應(yīng)用程序,官網(wǎng)地址:http://jmeter.apache.org),Jmeter是一個(gè)中高級(jí)開發(fā)或者測(cè)試人員都必須掌握的一個(gè)工具。
成都創(chuàng)新互聯(lián)擁有一支富有激情的企業(yè)網(wǎng)站制作團(tuán)隊(duì),在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)深耕十載,專業(yè)且經(jīng)驗(yàn)豐富。十載網(wǎng)站優(yōu)化營(yíng)銷經(jīng)驗(yàn),我們已為上1000+中小企業(yè)提供了網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)解決方案,按需求定制制作,設(shè)計(jì)滿意,售后服務(wù)無(wú)憂。所有客戶皆提供一年免費(fèi)網(wǎng)站維護(hù)!目前用的常用測(cè)試工具對(duì)比:
1、loadrunner:性能穩(wěn)定,壓測(cè)結(jié)果及細(xì)粒度大,可以自定義腳本進(jìn)行壓測(cè),但是太過(guò)于重大,功能比較繁多 2、apache ab(單接口壓測(cè)最方便):模擬多線程并發(fā)請(qǐng)求,ab命令對(duì)發(fā)出負(fù)載的計(jì)算機(jī)要求很低,既不會(huì)占用很多CPU,也不會(huì)占用太多的內(nèi)存,但卻會(huì)給目標(biāo)服務(wù)器造成巨大的負(fù)載, 簡(jiǎn)單DDOS***等 3、webbench:webbench首先f(wàn)ork出多個(gè)子進(jìn)程,每個(gè)子進(jìn)程都循環(huán)做web訪問(wèn)測(cè)試。子進(jìn)程把訪問(wèn)的結(jié)果通過(guò)pipe告訴父進(jìn)程,父進(jìn)程做最終的統(tǒng)計(jì)結(jié)果。2)特點(diǎn)
提供GUI圖形界面和非GUI界面進(jìn)行壓測(cè),在windows下面進(jìn)行開發(fā)測(cè)試壓測(cè)腳本,然后直接在linux上執(zhí)行
可以提供完整的動(dòng)態(tài)HTML壓測(cè)報(bào)告
純java編寫,一次編寫,四處壓測(cè)
多線程框架允許通過(guò)多個(gè)線程同時(shí)進(jìn)行采樣壓測(cè),并通過(guò)單獨(dú)的線程組同時(shí)采樣不同的功能
提供高度可擴(kuò)展的功能,自定義插件:
提供函數(shù)可用于為測(cè)試提供動(dòng)態(tài)輸入或提供數(shù)據(jù)操作。
通過(guò)Maven,Graddle和Jenkins的第三方開源庫(kù)輕松持續(xù)集成
需要安裝java運(yùn)行環(huán)境,建議安裝JDK環(huán)境,雖然JRE也可以,但是壓測(cè)https需要JDK里面的 keytool工具;
新版本Jmeter4.0,需要JDK8以上版本,JDK9或者JDK10都可以;并配置好JDK環(huán)境(這里就不講配置JDK環(huán)境了)
下載對(duì)應(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
4)jmeter4.0解壓目錄文件講解
bin:核心可執(zhí)行文件,包含配置 jmeter.bat: windows啟動(dòng)文件: jmeter: mac或者linux啟動(dòng)文件: jmeter-server:mac或者Liunx分布式壓測(cè)使用的啟動(dòng)文件 jmeter-server.bat:mac或者Liunx分布式壓測(cè)使用的啟動(dòng)文件 jmeter.properties: 核心配置文件 examples:壓測(cè)腳本文件JMX和動(dòng)態(tài)讀取csv參數(shù)文件案例 result—template:可視化HTML template:JMX的模板文件 docs:Jmeter的API文檔 extras:插件拓展的包 lib:核心的依賴包 ext:核心包 junit:單元測(cè)試包5)Jmeter核心組件介紹
什么是測(cè)試計(jì)劃(Test plan)?
就是壓測(cè)的一個(gè)流程,比如壓測(cè)什么接口,并發(fā)多少用戶,協(xié)議等等,在測(cè)試計(jì)劃下面配置線程組,采樣器,監(jiān)聽(tīng)器等組件
什么是線程組(Thread Group)?
線程組就是模擬多少用戶并發(fā)訪問(wèn)你的應(yīng)用,這個(gè)組里面共有多少用戶,創(chuàng)建方法如上圖現(xiàn)在“添加->threads->線程組“ 參數(shù)說(shuō)明: 線程數(shù):虛擬用戶數(shù)。一個(gè)虛擬用戶占用一個(gè)進(jìn)程或線程 準(zhǔn)備時(shí)長(zhǎng)(Ramp-Up Period(in seconds)):全部線程啟動(dòng)的時(shí)長(zhǎng),比如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次請(qǐng)求,可以勾選永遠(yuǎn)循環(huán)
什么是采樣器(Sampler)?
真正干活的組件,采樣器里面配置你要壓測(cè)的接口,協(xié)議,參數(shù)等 可以創(chuàng)建各種采樣器,如Http請(qǐng)求,F(xiàn)TP請(qǐng)求,JDBC壓測(cè)數(shù)據(jù)庫(kù)請(qǐng)求,JMS等,對(duì)應(yīng)的采樣器有不同的配置 以http請(qǐng)求采樣器為例 名稱:采樣器名稱,一般是接口名稱,方便后續(xù)進(jìn)行區(qū)分,比如“l(fā)ogin接口” 注釋:采樣器的描述,方便別人理解,類似壓測(cè)接口描述 web服務(wù)器配置 協(xié)議:壓測(cè)的協(xié)議,比如“http”或者"https" 服務(wù)器名稱或IP:壓測(cè)目標(biāo)機(jī)器的端口或者服務(wù)器IP地址,比如 www.xdclass.net 端口號(hào):壓測(cè)目標(biāo)機(jī)器的端口號(hào),比如 8080 HTTP請(qǐng)求配置 方法:http的請(qǐng)求方法,常用的有GET,POST,PUT,DELETE,PATCH等 路徑:壓測(cè)的接口的URL,比如 /api/v1/users Content encoding:是否進(jìn)行內(nèi)容編碼 自動(dòng)重定向:http有302狀態(tài)碼返回的時(shí)候,重定向,但不會(huì)產(chǎn)生記錄,不可以做關(guān)聯(lián)請(qǐng)求, 比如比如第二個(gè)請(qǐng)求要用到第一個(gè)請(qǐng)求的數(shù)據(jù),則選擇自動(dòng)重定向無(wú)法做關(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請(qǐng)求時(shí),使用Use multipart/from-data方法發(fā)送,默認(rèn)不選中。 parameters:參數(shù)配置 Files Upload:文件上傳配置
什么是結(jié)果樹?
壓測(cè)的結(jié)果查看,可以看到壓測(cè)發(fā)送的url,http參數(shù),返回結(jié)果,返回的整個(gè)響應(yīng),然后如果有斷言或者調(diào)試,可以看到斷言是否通過(guò)等等 添加路徑: 線程組->添加->監(jiān)聽(tīng)器->察看結(jié)果樹 如果不添加結(jié)果數(shù),則點(diǎn)擊壓測(cè)開始按鈕,壓測(cè)具體響應(yīng)我們無(wú)法知道,所以需要添加結(jié)果數(shù), 一來(lái)是方便調(diào)試壓測(cè)腳本,看請(qǐng)求參數(shù),路徑是否正常 切換到結(jié)果數(shù)查看頁(yè)面,點(diǎn)擊壓測(cè)按鈕就可以進(jìn)壓測(cè),邊壓測(cè)可以邊看到請(qǐng)求的結(jié)果。
補(bǔ)充個(gè)小技巧,就是GUI圖形界面語(yǔ)言版本中英文切換:
1、控制臺(tái)修改 menu -> options -> choose language 選擇對(duì)應(yīng)的語(yǔ)言版本就可以 2、配置文件修改 bin目錄 -> jmeter.properties 默認(rèn) #language=en 改為 language=zh_CN
OK,Jmeter4.0壓力測(cè)試第一季入門先到這里,
下一站章會(huì)再分享Jmeter高級(jí)知識(shí),比如斷言使用,動(dòng)態(tài)讀取CSV參數(shù),壓測(cè)Mysql,阿里云Linux環(huán)境非GUI界面壓測(cè),分布式壓測(cè)等等
視頻教程參考:http://edu.51cto.com/course/13251.html
https://www.xdclass.net/#/coursecatalogue?video_id=3