jmeter簡單的接口性能測試

原文轉自:http://www.javashuo.com/article/p-epcaojhx-ns.htmlhtml

Apache JMeter是一款純java編寫負載功能測試和性能測試開源工具軟件。相比Loadrunner而言,JMeter小巧輕便且免費,逐漸成爲了主流的性能測試工具,是每一個測試人員都必需要掌握的工具之一。java

本文爲JMeter性能測試完整入門篇,從Jmeter下載安裝到編寫一個完整性能測試腳本、最終執行性能測試並分析性能測試結果。apache

運行環境爲Windows 10系統,JDK版本爲1.8,JMeter版本爲3.3。服務器

2. Jmeter安裝

2.1 JDK安裝

因爲Jmeter是基於java開發,首先須要下載安裝JDK (目前JMeter只支持到Java 8,尚不支持 Java 9) 
1. 官網下載地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 
2. 選擇Java SE 8u151/ 8u152,點擊JDK下載 
這裏寫圖片描述
3. 安裝下載的JDK 
4. 配置系統環境變量併發

2.2 JMeter安裝

  1. 官網下載地址:http://jmeter.apache.org/download_jmeter.cgi
  2. 下載最新JMeter 3.3版本:apache-jmeter-3.3.zip 
    這裏寫圖片描述
  3. 下載完成後解壓zip包
  4. 啓動JMeter 
    雙擊JMeter解壓路徑(apache-jmeter-3.3\bin)bin下面的jmeter.bat便可 
    這裏寫圖片描述

3. 測試實例

咱們選取最多見的百度搜索接口:oracle

3.1 接口地址

http://www.baidu.com/s?ie=utf-8&wd=jmeter性能測試工具

3.2 請求參數

ie:編碼方式,默認爲utf-8 
wd: 搜索詞性能

3.3 返回結果

搜索結果,咱們能夠經過校驗結果中是否含有搜索詞wd來判斷本次請求成功或失敗。測試

4. JMeter腳本編寫

4.1 添加線程組

右鍵點擊「測試計劃」 -> 「添加」 -> 「Threads(Users)」 -> 「線程組」 
這裏寫圖片描述 
這裏能夠配置線程組名稱,線程數,準備時長(Ramp-Up Period(in seconds))循環次數,調度器等參數: 
這裏寫圖片描述 
線程組參數詳解: 
1. 線程數:虛擬用戶數。一個虛擬用戶佔用一個進程或線程。設置多少虛擬用戶數在這裏也就是設置多少個線程數。 
2. Ramp-Up Period(in seconds)準備時長:設置的虛擬用戶數須要多長時間所有啓動。若是線程數爲10,準備時長爲2,那麼須要2秒鐘啓動10個線程,也就是每秒鐘啓動5個線程。 
3. 循環次數:每一個線程發送請求的次數。若是線程數爲10,循環次數爲100,那麼每一個線程發送100次請求。總請求數爲10*100=1000 。若是勾選了「永遠」,那麼全部線程會一直髮送請求,一到選擇中止運行腳本。 
4. Delay Thread creation until needed:直到須要時延遲線程的建立。 
5. 調度器:設置線程組啓動的開始時間和結束時間(配置調度器時,須要勾選循環次數爲永遠) 
持續時間(秒):測試持續時間,會覆蓋結束時間 
啓動延遲(秒):測試延遲啓動時間,會覆蓋啓動時間 
啓動時間:測試啓動時間,啓動延遲會覆蓋它。當啓動時間已過,手動只需測試時當前時間也會覆蓋它。 
結束時間:測試結束時間,持續時間會覆蓋它。編碼

由於接口調試須要,咱們暫時均使用默認設置,待後面真正執行性能測試時再回來配置。

4.2 添加HTTP請求

右鍵點擊「線程組」 -> 「添加」 -> 「Sampler」 -> 「HTTP請求」 
這裏寫圖片描述 
對於咱們的接口http://www.baidu.com/s?ie=utf-8&wd=jmeter性能測試,能夠參考下圖填寫: 
這裏寫圖片描述 
Http請求主要參數詳解:

  1. Web服務器 
    協議:向目標服務器發送HTTP請求協議,能夠是HTTP或HTTPS,默認爲HTTP 
    服務器名稱或IP :HTTP請求發送的目標服務器名稱或IP 
    端口號:目標服務器的端口號,默認值爲80 
    2.Http請求 
    方法:發送HTTP請求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。 
    路徑:目標URL路徑(URL中去掉服務器地址、端口及參數後剩餘部分) 
    Content encoding :編碼方式,默認爲ISO-8859-1編碼,這裏配置爲utf-8
  2. 同請求一塊兒發送參數 
    在請求中發送的URL參數,用戶能夠將URL中全部參數設置在本表中,表中每行爲一個參數(對應URL中的 name=value),注意參數傳入中文時須要勾選「編碼」

4.3 添加察看結果樹

右鍵點擊「線程組」 -> 「添加」 -> 「監聽器」 -> 「察看結果樹」 
這裏寫圖片描述 
這時,咱們運行Http請求,修改響應數據格式爲「HTML Source Formatted」,能夠看到本次搜索返回結果頁面標題爲」jmeter性能測試_百度搜索「。 
這裏寫圖片描述

4.4 添加用戶自定義變量

咱們能夠添加用戶自定義變量用以Http請求參數化,右鍵點擊「線程組」 -> 「添加」 -> 「配置元件」 -> 「用戶定義的變量」: 
這裏寫圖片描述 
新增一個參數wd,存放搜索詞: 
這裏寫圖片描述 
並在Http請求中使用該參數,格式爲:${wd} 
這裏寫圖片描述

4.5 添加斷言

右鍵點擊「HTTP請求」 -> 「添加」-> 「斷言」 -> 「響應斷言」 
這裏寫圖片描述 
咱們校驗返回的文本中是否包含搜索詞,添加參數${wd}到要測試的模式中: 
這裏寫圖片描述

4.6 添加斷言結果

右鍵點擊「HTTP請求」 -> 「添加」-> 「監聽器」 -> 「斷言結果」 
這裏寫圖片描述

這時,咱們再運行一次就能夠看到斷言結果成功或失敗了 
這裏寫圖片描述

4.7 添加聚合報告

右鍵點擊「線程組」 -> 「添加」 -> 「監聽器」 -> 「聚合報告」,用以存放性能測試報告 
這裏寫圖片描述 
這樣,咱們就完成了一個完整Http接口的JMeter性能測試腳本編寫。

5. 執行性能測試

5.1 配置線程組

點擊線程組,配置本次性能測試相關參數:線程數,循環次數,持續時間等,這裏咱們配置併發用戶數爲10,持續時間爲60s 
這裏寫圖片描述

5.2 執行測試

點擊綠色小箭頭按鈕便可啓動測試,測試以前須要點擊小掃把按鈕清除以前的調試結果。 
這裏寫圖片描述

6. 分析測試報告

待性能測試執行完成後,打開聚合報告能夠看到: 
這裏寫圖片描述

聚合報告參數詳解: 
1. Label:每一個 JMeter 的 element(例如 HTTP Request)都有一個 Name 屬性,這裏顯示的就是 Name 屬性的值 
2. #Samples:請求數——表示此次測試中一共發出了多少個請求,若是模擬10個用戶,每一個用戶迭代10次,那麼這裏顯示100 
3. Average:平均響應時間——默認狀況下是單個 Request 的平均響應時間,當使用了 Transaction Controller 時,以Transaction 爲單位顯示平均響應時間 
4. Median:中位數,也就是 50% 用戶的響應時間 
5. 90% Line:90% 用戶的響應時間 
6. Min:最小響應時間 
7. Max:最大響應時間 
8. Error%:錯誤率——錯誤請求數/請求總數 
9. Throughput:吞吐量——默認狀況下表示每秒完成的請求數(Request per Second),當使用了 Transaction Controller 時,也能夠表示相似 LoadRunner 的 Transaction per Second 數 
10. KB/Sec:每秒從服務器端接收到的數據量,至關於LoadRunner中的Throughput/Sec

通常而言,性能測試中咱們須要重點關注的數據有: #Samples 請求數,Average 平均響應時間,Min 最小響應時間,Max 最大響應時間,Error% 錯誤率及Throughput 吞吐量。

7. 源碼下載

至此,咱們使用JMeter完成了一個完整的Http接口性能測試流程,從腳本編寫,執行到最終結果分析。

完整的腳本源碼下載連接: https://pan.baidu.com/s/1eS90cVo 密碼: st15

相關文章
相關標籤/搜索