1. 程式人生 > >Jmeter之壓力測試總結

Jmeter之壓力測試總結

bsp -s lin 壓力測試 在線 median 並發用戶 執行 strong

一、基本概念

1.線程組N:代表一定數量的並發用戶,所謂並發就是指同一時刻訪問發送請求的用戶。線程組就是模擬並發用戶訪問。

2.Ramp-Up Period(in seconds)建立所有線程的周期,就是告訴jmeter要在多久沒啟動所有線程,保證在最後一個線程啟動時,第一個線程還在運行中,已達到壓測的目的。

默認值為0,,意味著jmeter執行測試立即就要啟動完所有線程發送請求,很容易導致服務器過載,這是不合理的,我們想要的應該是逐漸增加用戶訪問量達到峰值。

若設置為Ts,意味著每隔T/NS建立一個線程,在T秒內建立完所有線程。

3.循環次數A:指在一個線程在持續時間內發送請求的次數,壓測時,循環次數設置為永遠。

4.調度器->持續時間:模擬用戶並發行為持續的時間,也就是腳本持續運行的時間,一般是10分-20分鐘。

5.調度器->啟動延遲:意味著在多久後模擬用戶並發開始,也就是腳本啟動延遲的時間,點擊啟動後,還是默認等到延遲時間到達後才啟動。

6.啟動時間,結束時間:可以設置腳本啟動和結束時間,相當於定時,設置好,運行結束後自動報名結果。

具體如下圖:

技術分享圖片

二、壓測指標

腳本執行後,在測試計劃->線程組->監聽器->聚合報告查看壓測結果

1.Samples:請求總數,即在這次測試時一共發了多少次請求。

2.Average:即平均響應時間,一般是單個 Request 的平均響應時間,指從客戶端發送請求到服務器返回數據的時間,這個值越小越好。

3.Median:50% 用戶的響應時間

4.90% Line:90% 用戶的響應時間

5.Error%:本次測試中的錯誤率,值=出現錯誤的請求的數量/請求的總數

6.Throughput:即tps,吞吐量指服務器端每秒處理的請求數。

具體如下圖所示:

技術分享圖片

三、Jmeter分布式壓測

客戶機沒有足夠的能力來模擬較重的負載,我們可以使用Jmeter的分布式測試功能來通過一個Jmeter控制臺來遠程控制多個Jmeter引擎完成測試。

3.1實現原理:

  • 有多電腦,一臺作為控制機(Controller),其它機器做為代理機(Agent);
  • 腳本發送到每臺機器上,Agent機器不需要啟動Jmeter,通過ip找到代理機器,在通過jmeter-server.bat文件找到代理機的jmeter,讓其幫忙發請求;
  • 執行後,Agent把結果回傳到Controller匯總。

3.2實現步驟:

  • 有多臺電腦,每臺電腦上都有jmeter,而且這幾臺電腦都互相能ping通;
  • 在控制機的jmeter的配置文件裏面添加了代理機的IP;
  • 在代理機上啟動運行jmeter-server.bat文件,不需要啟動jmeter;

註意:如果有參數化文件,在代理機上的相同位置也要放置一份參數化文件。

3.3控制機配置

打開jmeter\apache-jmeter-3.0\bin\jmeter.properties文件,搜索Remote_hosts,將所有代理機的IP地址加在控制機的配置文件中。

技術分享圖片

配置好後,代理機器都啟動運行jmeter-server.bat文件,然後執行腳本即可。

那麽如何啟動所有機器呢?修改配置文件後,重啟Jmeter,在運行->遠程啟動下顯示所有控制機和代理機的ip。選擇遠程所有啟動,就會啟動所有機器。

技術分享圖片

3.4 Linux下運行壓測腳本

在windows電腦上保存已做好的壓測腳本,比如:HTTP請求.jmx。

  • Linux下無圖形化界面,將jmeter\apache-jmeter-3.0\bin目錄(bin目錄)放到環境變量PATH下,我們就可以用jmeter的命令啦;
  • 然後執行命令:jmeter -n -t e:\path\HTTP請求.jmx -l e:/path/res.jtl
  • -n:代表在沒有圖形化界面下運行,-t 指定一個測試腳本,-l 指定結果文件,這個結果文件後綴名為.jtl

技術分享圖片

四 Jmeter操作數據庫

下載mysql-connector-java-5.1.7-bin.jar包,具體操作如下圖:

技術分享圖片

在線程組->添加->配置原件->添加JDBC Connection Configration,設置參數如下圖,記得加上:技術分享圖片

技術分享圖片

技術分享圖片

在線程組->Sample->添加JDBC request,參數設置如下圖:

技術分享圖片

技術分享圖片

SQL語句執行結果,在察看結果樹中察看結果。

Jmeter之壓力測試總結