Apache Jmeter 性能測試


今天在寫性能測試報告的時候需要使用到數據,打算用做一下性能測試,然后在百度后發現了一款Apache開源的Jmeter壓測工具

Jmeter概述:

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

Jmeter安裝:

  由於Jmeter是基於java開發,首先需要下載安裝JDK (目前JMeter只支持到Java 8,尚不支持 Java 9)

  至於JDK則么安裝配置環境變量啥的,就不多說了,自己百度,一搜一大把,我們着重說Jmeter

  官網下載地址:http://jmeter.apache.org/download_jmeter.cgi

     下載最新JMeter 3.3版本:apache-jmeter-3.3.zip

 

   下載后解壓,進入bin目錄下找到,jmeter.bat雙擊啟動,到此安裝啟動完成

Jmeter切換語言包:

 

 畢竟是國人中文還是比英文爽,接下來正式開始說

Jmeter測試腳本編寫:

  修改一級節點為測試計划,雖然沒啥用,但是看着比較爽

 

   然后創建線程組:

 

 這里可以配置線程組名稱,線程數,准備時長(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. 調度器:設置線程組啟動的開始時間和結束時間(配置調度器時,需要勾選循環次數為永遠) 
持續時間(秒):測試持續時間,會覆蓋結束時間 
啟動延遲(秒):測試延遲啟動時間,會覆蓋啟動時間 
啟動時間:測試啟動時間,啟動延遲會覆蓋它。當啟動時間已過,手動只需測試時當前時間也會覆蓋它。 
結束時間:測試結束時間,持續時間會覆蓋它。

 

接下來在線程組中添加HTTP請求

 

 在http請求中可以寫我們調用的接口的具體內容

Http請求主要參數詳解:

  Web服務器 
    協議:向目標服務器發送HTTP請求協議,可以是HTTP或HTTPS,默認為HTTP 
    服務器名稱或IP :HTTP請求發送的目標服務器名稱或IP 
    端口號:目標服務器的端口號,默認值為80 
  Http請求 
    方法:發送HTTP請求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。 
    路徑:目標URL路徑(URL中去掉服務器地址、端口及參數后剩余部分) 
    Content encoding :編碼方式,默認為ISO-8859-1編碼,這里配置為utf-8

  同請求一起發送參數 

    在請求中發送的URL參數,用戶可以將URL中所有參數設置在本表中,表中每行為一個參數(對應URL中的 name=value),注意參數傳入中文時需要勾選“編碼”

到這里我們的請求就編寫完成了,接下來添加查看結果樹

 

 在這個里面可以看到上面http請求的執行結果,當然沒執行之前是空的

 

 最后也就是添加聚合報告了

聚合報告可以查看http執行的一系列參數

 

 

 

 這樣,我們就完成了一個完整Http接口的JMeter性能測試腳本編寫。

執行測試:

  點擊綠色小箭頭按鈕即可啟動測試,測試之前需要點擊小掃把按鈕清除之前的調試結果。

 

 然后執行完成后就可以在,查看結果樹中查看單個請求的返回結果

可以在聚合報告中查看總體的接口性能信息

聚合報告分析:

聚合報告參數詳解: 
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 吞吐量。

作者:彼岸舞

時間:2020\10\14

內容關於:工作中用到的小技術

本文來源於網絡,只做技術分享,一概不負任何責任


免責聲明!

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



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