Jmeter(GUI模式)教程


前些天,領導讓我做接口的壓力測試。What??我從未接觸過這方面,什么都不知道,一臉蒙。於是我從學習jmeter開始入手。

現在記錄下來jmeter的使用步驟,希望能對大家有所幫助。


一、安裝Jmeter

1、電腦安裝Java,並配置環境變量,步驟見:鏈接

2、下載Jmeter,解壓到本地。

3、進入/Jmeter/bin,雙擊jmeter,打開軟件。

 
jmeter

二、Jmeter工作原理

Jmeter可以作為Web服務器與瀏覽器之間的代理網關,以便捕獲瀏覽器的請求和Web服務器的響應,如此就可以很容易的生成性能測試腳本。有了性能測試腳本,Jmeter就可以通過線程組來模擬真實用戶對Web服務器的訪問壓力。這與LoadRunner的工作原理基本一致。

 
工作原理

三、Jmeter操作步驟

 
Jmeter界面

1、測試計划

測試計划描述了Jmeter運行時將會執行的一系列步驟。一個完善的測試計划,會包含一個或多個線程組、邏輯控制器、采樣器、監聽器、定時器、斷言和配置元件


2、線程組

線程組是任何測試計划的起點,所有的邏輯控制器和采樣器都必須放在線程組之下。其他的測試元件可以被直接放在測試計划之下,這些測試元件對所有線程組都生效。線程組就像它的名稱所描述的,被用來管理執行性能測試所需的Jmeter線程。用戶通過線程組的控制面板可以:

· 設置線程數量

· 設置線程啟動周期Period

· 設置執行測試腳本的循環次數

· 設置持續時間

· 設置啟動延時時間

· 設置啟動時間和結束時間

參數Ramp-Up Period 告訴Jmeter 達到最大線程數所需的時間。假定共有10個線程,Ramp-Up Period為100秒,那么Jmeter就會在100秒內啟動這10個線程,並讓它們運轉起來。每一個測試線程都會在上一個線程啟動10秒之后才開始運行。

注意 ⚠️:

參數Ramp-Up Period不能設定的太短,否則在測試初始階段會給予服務器過大的壓力。

建議 ⚠️:

初始值可以設定為Ramp-Up Period=總線程數。后續在根據實際情況適當增減。

設定測試運行的“啟動時間”和“結束時間”,測試啟動后會一直等待,直到用戶設定的開始時間。測試運行期間,Jmeter會在每一次循環結束后,檢查是否已經達到結束時間。如果已經達到了結束時間,Jmeter就會終止測試運行,否則Jmeter會繼續下一個測試循環。(如需測試某個時間階段的性能指標,則進行設置該部分。)

注意 ⚠️:

設置“啟動延時”會使“啟動時間”無效,而“持續時間”會使“結束時間”無效。


3、HTTP請求

 
配置元件

1)添加HTTP請求默認值

對於當前的測試計划,所有的請求都發往同一個服務器/IP,端口,路徑,Parameters,Body等。可在HTTP請求默認值中設置。

步驟:右擊鼠標-> 添加-> 配置元件-> HTTP請求默認值

 
HTTP請求默認值

2)添加HTTP信息頭管理器

對於當前的測試計划,所有的請求信息頭一致的。可在HTTP請求默認值中設置。

步驟:右擊鼠標-> 添加-> 配置元件-> HTTP信息頭管理器

 
HTTP信息頭管理器

3)添加HTTP請求

步驟:右擊鼠標-> 添加->Sampler->HTTP請求

 
添加HTTP請求

添加HTTP請求后,點擊進行編輯,注意⚠️:若已經在HTTP請求默認值中設定了默認值,則此處不需要再次設定服務器名稱/IP。

注意⚠️:若該測試計划,設置多個HTTP請求,則J meter會按照它們在測試樹中出現的順序發送請求。

 
編輯HTTP請求

4、監聽器

1)查看結果樹

步驟:右擊鼠標-> 添加->監聽器->查看結果樹

查看結果樹以樹的方式來展示所有采樣響應結果,測試人員可以通過它來查看任何采樣的響應,除了展示響應結果之外,測試人員還能看到獲取響應所消耗的時間,以及一些響應代碼,需要注意⚠️:Request面板中顯示Jmeter添加的頭部,它不會展示由HTTP協議實現添加的頭部

查看響應由多種方式,用戶可以在左側面板底部的下拉框選擇

 
查看結果樹

2)聚合報告

步驟:右擊鼠標-> 添加->監聽器->聚合報告

聚合報告會為測試中每一個不同采樣在表格中創建一行,針對每一個采樣,它都會統計服務器響應信息,並提供請求數目、Min,Max,Average,Error rate,Throughput(request/second)以及Thoughput(Kilobytes per second)等統計值。

 
聚合報告

Samples -- 本次場景中一共完成了多少個Transaction

Average -- 系列采樣結果的平均響應時長

Median -- 統計意義上面的響應時間的中間值

90% Line -- 所有transaction中90%的transaction的響應時間都小於xx

95%Line -- 所有transaction中95%的transaction的響應時間都小於xx

99%Line -- 所有transaction中99%的transaction的響應時間都小於xx

Min -- 最小響應時間

Max -- 最大響應時間

Error -- 發生錯誤的比例

Troughput -- 吞吐量,單位:transaction/second

Kb/sec -- 該吞吐量以每秒Kilobytes來衡量

注意⚠️: 響應時間的單位均為ms


5、響應斷言

斷言被用於采樣進行額外的檢查,它會對相同作用域內的每個采樣進行處理,為確保斷言僅用於特定的采樣。可針對主采樣,子采樣,二者同時施加特定的斷言或者JMeter變量選項。

步驟:右擊鼠標-> 添加->斷言>響應斷言

模式字符串包括:

· Contains,Matches --Perl5風格的正則表達式。

· Equals,Substring --純文本,區分大小寫。

 
響應斷言

四、壓力測試

1)壓力測試分兩種場景:

一種是單場景,壓一個接口的;

第二種是混合場景,多個有關聯的接口。

壓測時間,一般場景都運行10-15分鍾。如果是疲勞測試,可以壓一天或一周,根據實際情況來定。

2)壓測設置:

線程數:並發數量,具體說是一次存在多少用戶同時訪問。可呈遞增狀態添加,並找到最大值。

Rame-Up Period(in seconds):表示JMeter每隔多少秒發動並發。初始值可以設定為Ramp-Up Period=總線程數。后續在根據實際情況適當增減。

循環次數:這個設置不會改變並發數,可以延長並發時間。總請求數=線程數*循環次數

調度器:設置壓測的啟動時間、結束時間、持續時間和啟動延遲時間。

運行網絡:最好設置與服務器在同一網絡,降低因網速問題導致的結果不准確。

3)壓測結果查看:

運行完后,聚合報告會顯示壓測的結果。主要觀察Samples、Average、error、Throughput。

Samples:表示一共發出的請求數

Average:平均響應時間,默認情況下是單個Request的平均響應時間(ms)

Error%:測試出現的錯誤請求數量百分比。若出現錯誤就要看服務端的日志,配合開發查找定位原因

Throughput:簡稱tps,吞吐量,默認情況下表示每秒處理的請求數,也就是指服務器處理能力,tps越高說明服務器處理能力越好。

4)壓測結果的分析

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

2、不斷的增加並發數,加到tps達到一定值開始出現下降,那么那個值就是最大的tps;

3、不斷增加並發數,達到一個值后,服務器不斷出現請求超時,則可認為該值為最大的並發數;

4、確定允許錯誤率的范圍,與當前的錯誤率進行比較;


以上

如果幫到你了,就點個贊吧~~😄

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM