分佈式壓測系列之Jmeter4.0第一季

1)Jmeter4.0介紹

jmeter是個純java編寫的開源壓測工具,apache旗下的開源軟件,一開始是設計爲web測試的軟件,因爲發展迅猛,如今能夠壓測許多協議好比:http、https、soap、ftp、database數據庫、LDAP  輕量目錄訪問協議、TCP、SOMP(簡單郵件協議)等,因爲是純java編寫,能夠在蘋果、window或者Linux下運行,全功能的測試IDE,容許快速的創建測試計劃(從瀏覽器或本地應用程序,官網地址:http://jmeter.apache.org),Jmeter是一箇中高級開發或者測試人員都必須掌握的一個工具。html

目前用的經常使用測試工具對比:java

一、loadrunner:性能穩定,壓測結果及細粒度大,能夠自定義腳本進行壓測,可是太過於重大,功能比較繁多
二、apache ab(單接口壓測最方便):模擬多線程併發請求,ab命令對發出負載的計算機要求很低,既不會佔用不少CPU,也不會佔用太多的內存,但卻會給目標服務器形成巨大的負載, 簡單DDOS***等
三、webbench:webbench首先fork出多個子進程,每一個子進程都循環作web訪問測試。子進程把訪問的結果經過pipe告訴父進程,父進程作最終的統計結果。

1.png

2)特色

  • 提供GUI圖形界面和非GUI界面進行壓測,在windows下面進行開發測試壓測腳本,而後直接在linux上執行linux

  • 能夠提供完整的動態HTML壓測報告web

  • 純java編寫,一次編寫,四處壓測sql

  • 多線程框架容許經過多個線程同時進行採樣壓測,並經過單獨的線程組同時採樣不一樣的功能數據庫

  • 提供高度可擴展的功能,自定義插件:apache

  • 提供函數可用於爲測試提供動態輸入或提供數據操做。windows

  • 經過Maven,Graddle和Jenkins的第三方開源庫輕鬆持續集成api

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

瀏覽器

4)jmeter4.0解壓目錄文件講解

2.png

bin:核心可執行文件,包含配置	
      jmeter.bat: windows啓動文件:	
      jmeter: mac或者linux啓動文件:	
      jmeter-server:mac或者Liunx分佈式壓測使用的啓動文件	
      jmeter-server.bat:mac或者Liunx分佈式壓測使用的啓動文件	
      jmeter.properties: 核心配置文件	
      examples:壓測腳本文件JMX和動態讀取csv參數文件案例	result—template:可視化HTML	
      template:JMX的模板文件			
docs:Jmeter的API文檔
extras:插件拓展的包
lib:核心的依賴包
ext:核心包
junit:單元測試包

5)Jmeter核心組件介紹

3.png

什麼是測試計劃(Test plan)?

    就是壓測的一個流程,好比壓測什麼接口,併發多少用戶,協議等等,在測試計劃下面配置線程組,採樣器,監聽器等組件

什麼是線程組(Thread Group)?

線程組就是模擬多少用戶併發訪問你的應用,這個組裏面共有多少用戶,建立方法如上圖如今「添加->threads->線程組「
    參數說明:
    線程數:虛擬用戶數。一個虛擬用戶佔用一個進程或線程			
    準備時長(Ramp-Up Period(in seconds)):所有線程啓動的時長,好比100個線程,20秒,則表示20秒內100個線程都要啓動完成,每秒啓動5個線程			    
    循環次數:每一個線程發送的次數,假如值爲5,100個線程,則會發送500次請求,能夠勾選永遠循環

4.png

什麼是採樣器(Sampler)?


真正幹活的組件,採樣器裏面配置你要壓測的接口,協議,參數等
能夠建立各類採樣器,如Http請求,FTP請求,JDBC壓測數據庫請求,JMS等,對應的採樣器有不一樣的配置
以http請求採樣器爲例
	名稱:採樣器名稱,通常是接口名稱,方便後續進行區分,好比「login接口」
	註釋:採樣器的描述,方便別人理解,相似壓測接口描述	
	web服務器配置
			協議:壓測的協議,好比「http」或者"https"
			服務器名稱或IP:壓測目標機器的端口或者服務器IP地址,好比 www.xdclass.net		
			端口號:壓測目標機器的端口號,好比 8080	
	HTTP請求配置
			方法:http的請求方法,經常使用的有GET,POST,PUT,DELETE,PATCH等		
			路徑:壓測的接口的URL,好比 /api/v1/users		
			Content encoding:是否進行內容編碼
							
			自動重定向:http有302狀態碼返回的時候,重定向,但不會產生記錄,不能夠作關聯請求,		
			好比好比第二個請求要用到第一個請求的數據,則選擇自動重定向沒法作關聯		
			跟隨重定向:會產生記錄,能夠作關聯,默認勾選這個		
			Use multipart/from-data for HTTP POST :當發送POST請求時,使用Use multipart/from-data方法發送,默認不選中。		
			parameters:參數配置		
			Files Upload:文件上傳配置

5.png

什麼是結果樹?

壓測的結果查看,能夠看到壓測發送的url,http參數,返回結果,返回的整個響應,而後若是有斷言或者調試,能夠看到斷言是否經過等等
添加路徑: 線程組->添加->監聽器->察看結果樹
若是不添加結果數,則點擊壓測開始按鈕,壓測具體響應咱們沒法知道,因此須要添加結果數,
一來是方便調試壓測腳本,看請求參數,路徑是否正常
切換到結果數查看頁面,點擊壓測按鈕就能夠進壓測,邊壓測能夠邊看到請求的結果。

6.png

補充個小技巧,就是GUI圖形界面語言版本中英文切換:

一、控制檯修改	menu -> options -> choose language 選擇對應的語言版本就能夠
二、配置文件修改
		bin目錄 -> jmeter.properties			
		默認 #language=en			
		改成 language=zh_CN

OK,Jmeter4.0壓力測試第一季入門先到這裏,

下一站章 會再分享Jmeter高級知識,好比斷言使用,動態讀取CSV參數,壓測Mysql,阿里雲Linux環境非GUI界面壓測,分佈式壓測等等

視頻教程參考http://edu.51cto.com/course/13251.html

https://www.xdclass.net/#/coursecatalogue?video_id=3

相關文章
相關標籤/搜索