jmeter壓力測試

Jmeter既能夠接口測試也能夠作性能測試,下面講一下使用jmeter作壓力測試,壓力測試就是多個用戶同時操做系統,即設置併發,併發運行時間。linux

壓力測試通常分單場景和多場景,單場景就是壓測單個接口,多場景就是同時壓測多個有數據關聯的接口。nginx

 

需求確認

在壓測前,要確認壓測的功能和指標,通常須要確認下面幾個問題:web

一、併發數是多少?數據庫

二、TPS(服務器每秒鐘處理的請求數)目標是多少?響應時間有什麼要求?windows

三、接口參數固定仍是隨機化?tomcat

 

壓力測試的設置

壓力測試的步驟與接口測試相同:1)添加線程組 2)添加http請求 3)在http請求中寫入url、路徑、請求方式、參數等,進行一系列的請求設置(參數化、關聯等) 4)添加監聽器  5)運行腳本,查看結果服務器

壓測主要設置的就是步驟1)線程組有關的內容,其中循環次數並不會改變併發數,只是延長了併發時間。總請求數=線程數*循環次數網絡

 

圖1併發

壓測結果查看

通常在線程組上添加聚合報告來查看和分析壓測結果:高併發

 

圖2

聚合報告內容以下:

圖3

 

壓測結果分析

一、有錯誤發生,須要與開發確認,是否容許錯誤的發生或者錯誤率容許在多大範圍內

二、壓測結束,登陸響應的web服務器查看CPU等性能指標,進行數據分析

三、最大的tps:不斷增長併發數,加到tps達到必定值開始出現降低時,那麼這個值就是最大的tps

四、最大併發數:通常不斷增大請求,直到響應請求超時時,可認爲該值爲最大併發數

五、壓測過程出現性能瓶頸,若壓力機管理器查看到cpu、網絡和內存等都正常,未達到90%以上,則能夠說明服務器有問題,壓力機沒有問題

六、影響性能的考慮點包括:數據庫、應用程序、中間件(tomcat、nginx)、網絡、操做系統等方面

 

Linux下運行jmeter壓力測試

用windows平臺測試時,會受到網絡條件的影響,致使測試結果不夠準確,尤爲在高併發狀況下,須要可以精準的測試請求的響應時長,對於網絡的要求更加苛刻,此時,能夠考慮在linux服務器端安裝jmeter進行測試。

在linux下安裝jmeter,推薦播客:http://blog.csdn.net/zhemeteor/article/details/51315874

咱們能夠如今windows上先把腳本作好,再到linux底下運行便可。

例如:jmeter -n -t test1.jmx -l logfile1.jtl

經常使用命令參數:

-n:非GUI模式下運行jmeter

-t:要運行的jmeter測試腳本文件,test1.jmx就是作好的jmeter腳本

-l:記錄結果的文件,logfile1.jtl就是測試結果文件

-r:啓動遠程服務

-H:設置jmeter使用的代理主機

測試結果文件能夠直接導入到查看結果樹或者聚合報告下

 

 

Jmeter添加負載機

在壓力測試過程當中,可能併發數過大,一個機子啓動不了,可使用多個機子一塊兒來併發。此時就須要添加負載機。

一、添加負載機的步驟

一、先在其餘的負載機(另外的電腦)上啓動jmeter-server。Windows機子做爲壓力機的話,運行jmeter-server.bat;linux、mac做爲壓力機的話,運行jmeter-server.sh

二、修改主控機jmeter的bin目錄下的配置文件jmeter.properties,找到remot_hosts,而後把負載機的ip加入到裏面就行了,別忘記寫端口號

圖4

 

默認jmeter-server的端口號是1099,若是說負載機上的端口號改了,那麼你在這裏也得改

四、啓動時候選擇遠程所有運行便可

 

二、負載運行結果說明

使用遠程負載進行壓測,總請求數=線程數*循環次數*運行機個數。以下,線程組設置以下圖5,負載機設置以下圖6,有兩個機器會運行腳本,每一個機器都運行2*2次,即總請求數爲2*2*2,如圖7

 

圖5

 

圖6

 

圖7

使用遠程負載運行的請求,查看結果樹的響應數據是空的,如上圖7。咱們能夠經過在請求下添加斷言,或者直接用聚合報告來查看請求是否正確。

當請求自己是正確的,故意將斷言的響應數據寫錯的話,就能夠看到請求的響應數據啦,如圖8

 

圖8

三、注意事項

一、            負載機和控制機的jmeter版本保持一致,不然有時會報以下錯(固然不排除別的可能也會報以下錯);有時是負載機不會運行腳本,也不報任何錯。

 

圖9

 

二、            須要控制機也運行腳本時,配置文件中remote_hosts的127.0.0.1的IP後面也要加上端口號「:1099」,而且在控制機運行jmeter-server.bat,不然會報如圖10的錯;不須要控制機運行腳本時,直接將remote_hosts的127.0.0.1刪除,只留下負載機IP,這樣就只有負載機在運行腳本。

圖10

相關文章
相關標籤/搜索