Apache JMeter壓力測試工具使用說明

  Apache JMeter是Apache組織開發的基於Java的壓力測試工具。官網地址:http://jmeter.apache.org/download_jmeter.cgi

在進行網頁或應用程序後臺接口開發時,一般要及時測試開發的接口能否正確接收和返回數據,對於單次測試,Postman插件是個不錯的Http請求模擬工具。 

但是Postman只能模擬單客戶端的單次請求,而對於模擬多用戶併發等性能測試,就必須藉助其他的工具了,這裏推薦功能強大的JMeter自動化測試工具

Apache JMeter - Apache JMeter用於對軟件做壓力測試,它最初被設計用於Web應用測試但後來擴展到其他測試領域。 它可以用於測試靜態和動態資源例如靜態文件、Java 小服務程序CGI 腳本、Java 對象、數據庫, FTP 服務器, 等等。JMeter 可以用於對服務器、網絡或對象模擬巨大的負載,來自不同壓力類別下測試它們的強度和分析整體性能。

下面就以上圖的Restful類型的接口爲例簡單介紹使用Jmeter進行接口測試的方法。

獲取某個具體網關設備的基本信息。

請求方法:GET

URI/api/gateway/<gateway_id>

參數:在HTTP請求(http request)的頭部(header)添加Userid和Token字段作爲用戶驗證字段

參數名

必需

類型

說明

gateway_id

true

int

網關ID,置於URL內

響應

返回值:JSON格式的網關信息

參數:

參數名

類型

說明

id

int

網關id

name

string

網關的名稱

mac

string

網關的mac地址

fw_ver

string

網關的固件版本號

sub_dev

unsigned int

子設備數

did

string

網關的did

pscode

string

網關pscode

 

1.啓動jmeter:在bin下以管理員身份運行jmeter.bat,啓動jmeter

2. 創建測試計劃:

默認啓動jmeter時會加載一個測試技術模板,保存測試計劃:修改名稱爲Apitest,點擊保存,選擇保存路徑,後面的步驟,每次添加或修改了了一些選項,軟件並不會自動保存到jmx文件中,所以進行測試後,如果需要保存本次測試選項,要手動到“文件”菜單中保存一下。

3. 添加線程組

右鍵左邊樹中的測試計劃“Apitest”節點, ”→”Threads線程組

添加成功後,“Apitest”節點下多了線程組” 節點,當然這個線程組的名稱是可以自己設定的。

4. 添加http默認請求:(用來配置公共參數,不是http請求)

右鍵線程組,選擇添加”→ “配置元件”→“HTTP請求默認值,點擊“HTTP請求默認值

添加成功後,線程組節點下多了“HTTP請求默認值節點

這裏可以設置主機地址等一下公共參數,比如我們的例子中請求路徑前面都是主機地址+index.php,就可以統一在"http請求默認值"裏設置

填寫默認請求名、服務器、默認請求路徑,保存測試計劃。

5.添加http請求信息頭

這一項並不是必須的,只不過我們的例子中使用了Userid和Token放在HTTP請求頭中用作用戶驗證

右鍵“Apitest”,選擇“添加”→ “配置元件”→“HTTP信息頭管理器”

6. 添加http請求

右鍵“Apitest”,選擇添加”→ “Sampler”→“HTTP請求

添加成功後,出現新的節點“HTTP請求”,就可以填寫具體的請求參數了。

填寫完成,保存測試計劃

7. 添加監聽器

右鍵線程組,選擇添加”→監聽器”→XXXXXXXXX

可以添加的監聽器有很多種,可以添加多個監聽器,這裏我們添加幾個常用的“圖形結果”、“察看結果樹”、“聚合報告”

 

添加成功後,線程組下增加了幾個節點

8. 試運行

點擊執行

可以查看各個“監聽器”的結果

 

Label:每個 JMeter 的 element(例如 HTTP Request)都有一個 Name 屬性,這裏顯示的就是 Name 屬性的值

#Samples:表示你這次測試中一共發出了多少個請求,如果模擬10個用戶,每個用戶迭代10次,那麼這裏顯示100

Average:平均響應時間——默認情況下是單個 Request 的平均響應時間,當使用了 Transaction Controller 時,也可以以Transaction 爲單位顯示平均響應時間

Median:中位數,也就是 50% 用戶的響應時間

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

Note:關於 50% 和 90% 併發用戶數的含義,請參考下文

http://www.cnblogs.com/jackei/archive/2006/11/11/557972.html

Min:最小響應時間

Max:最大響應時間

Error%:本次測試中出現錯誤的請求的數量/請求的總數

Throughput:吞吐量——默認情況下表示每秒完成的請求數(Request per Second),當使用了 Transaction Controller 時,也可以表示類似 LoadRunner 的 Transaction per Second 數

KB/Sec:每秒從服務器端接收到的數據量,相當於LoadRunner中的Throughput/Sec

 

9. 修改線程組的線程數等參數,用於壓力測試

點擊左側樹形導航中的“線程組”

樣本數目:總共發送到服務器的請求數.
最新樣本:代表時間的數字,是服務器響應最後一個請求的時間.
吞吐量:服務器每分鐘處理的請求數.
平均值:總運行時間除以發送到服務器的請求數.
中間值:時間的數字,有一半的服務器響應時間低於該值而另一半高於該值.
偏離:服務器響應時間變化、離散程度測量值的大小,或者,換句話說,就是數據的分佈
.

如果要進行新的測試,爲了清除上次運行的結果,請點擊上方的掃把。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章