Jmeter性能測試
一、Jmeter介紹
官網:Jmeter
Apache JMeter是Apache組織開發的基於Java的開源壓力測試工具。用於對軟件做壓力測試。
Apache JMeter的功能包括:
- 能夠加載和性能測試許多不同的應用程序/服務器/協議類型:
1、網絡-HTTP,HTTPS(Java,NodeJS,PHP,ASP.NET等)
2、SOAP / REST Web服務
3、FTP
4、通過JDBC的數據庫
5、LDAP
6、通過JMS的面向消息的中間件(MOM)郵件-SMTP(S),POP3(S)和IMAP(S)
7、本機命令或Shell腳本
8、TCP協議
9、Java對象 - 功能齊全的Test IDE,可進行快速的Test Plan 記錄(來自瀏覽器或本機應用程序),構建和調試。
- CLI模式(命令行模式(以前稱爲Non GUI)/無頭模式)可從任何Java兼容的操作系統(Linux,Windows,Mac OSX等)加載測試
- 完整且隨時可以呈現的動態HTML報告
- 通過從大多數流行的響應格式,HTML,JSON, XML或任何文本格式中提取數據的能力,輕鬆實現關聯
- 完全的可移植性和100%Java純度。
- 完整的多線程框架允許通過多個線程進行併發採樣,並通過單獨的線程組同時對不同的函數進行採樣。
- 緩存和脫機分析/重放測試結果。
- 高度可擴展的核心:
1、可插拔採樣器允許無限的測試功能。
2、可腳本化的採樣器(與Groovy和BeanShell 等JSR223兼容的語言)
3、可以通過可插入計時器選擇幾個負載統計信息。
4、數據分析和可視化插件可實現出色的可擴展性和個性化。
5、函數可用於爲測試提供動態輸入或提供數據處理。
6、通過針對Maven,Gradle和Jenkins的第三方開源庫輕鬆進行持續集成。
二、準備工作-安裝
2.1、依賴jdk,jdk安裝
JMeter與Java 8或更高版本兼容。
- 下載
下載方式一:官網下載地址.
嫌註冊下載麻煩的可以使用方式二獲取
根據自己的使用環境,下載對應的jdk:
下載方式二:
鏈接:https://pan.baidu.com/s/1cOVLkxLH5_cHrigg3AxoBQ
提取碼:kgi9
- 安裝下載的JDK
- 配置系統環境變量
新建變量名:JAVA_HOME ,變量值爲 jdk 的安裝路徑。
新建變量名:CLASSPATH ,變量值: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
找到Path變量,雙擊編輯 Path變量
在值得最後增加;%JAVA_HOME%\bin
驗證是否安裝配置正確
打開cmd,輸入java -version
2.2、JMeter安裝
鏈接: 官網下載地址.
下載完成後解壓zip包
進入apache-jmeter-5.2.1\bin,雙擊jmeter.bat
三、JMeter中常用功能釋義
JMeter裏面的元件很多,邏輯控制器,配置元件,定時器,Sampler,監聽器等等,先給出一個實例,慢慢了解元件的使用方法。測試一個網站,我們至少需要:用戶,發送請求,查看結果這三個過程。
3.1、測試計劃
本節描述測試計劃的不同部分。
最少的測試將包括測試計劃,線程組和一個或多個採樣器。
測試計劃對象具有一個稱爲“ 功能測試 ” 的複選框。如果選擇該選項,它將使JMeter記錄每個樣本從服務器返回的數據。如果您在測試偵聽器中選擇了文件,則此數據將被寫入文件。如果要進行少量運行以確保正確配置JMeter並確保服務器返回預期結果,這將很有用。結果是文件將快速增長,JMeter的性能將受到影響。如果要進行壓力測試,則應禁用此選項(默認情況下處於禁用狀態)。
如果您沒有將數據記錄到文件中,則此選項沒有區別。
您還可以使用偵聽器上的“ 配置”按鈕來確定要保存的字段。
3.2、線程組
線程組元素是任何測試計劃的起點。所有控制器和採樣器必須在線程組下。其他元素(例如,偵聽器)可以直接放在測試計劃下,在這種情況下,它們將應用於所有線程組。顧名思義,線程組元素控制JMeter將用於執行測試的線程數。線程組的控件使您可以:
設置線程數
設置加速時間
設置執行測試的次數
每個線程將完整地執行測試計劃,並且完全獨立於其他測試線程。多個線程用於模擬與服務器應用程序的併發連接。
加速期告訴JMeter將“加速”到所選線程的總數需要多長時間。如果使用了10個線程,並且啓動週期爲100秒,那麼JMeter將花費100秒來啓動和運行所有10個線程。每個線程將在上一個線程開始後10(100/10)秒開始。如果有30個線程,啓動週期爲120秒,則每個連續線程將延遲4秒。
升級需要足夠長的時間,以避免在測試開始時工作量過大,還應足夠短,以使最後一個線程在第一個線程完成之前開始運行(除非有人希望這樣做)。
從“ Ramp-up =線程數”開始,然後根據需要向上或向下調整。
默認情況下,線程組配置爲在其元素之間循環一次。
線程組還提供了一個調度程序。單擊“線程組”面板底部的複選框以啓用/禁用其他字段,您可以在其中輸入測試持續時間,啓動延遲,運行的開始和結束時間。您可以配置持續時間(秒)和啓動延遲(秒)來控制每個線程組的持續時間以及啓動後的秒數。當測試開始時,JMeter將在啓動線程組的線程之前等待啓動延遲(秒),然後運行配置的持續時間(秒)。請注意,這兩個選項會覆蓋“ 開始時間”和“ 結束時間”。
另外,您也可以使用其他兩個字段Start time和End time(儘管不建議這樣做,因爲它不太靈活)。測試開始時,如有必要,JMeter將等待直到達到啓動時間。在每個週期的末尾,JMeter會檢查是否已達到結束時間,如果已結束,則運行將停止,否則,將允許測試繼續進行直到達到迭代限制。
四、如何使用JMeter
4.1、切換中英文模式
4.2、添加‘測試計劃’
具體操作:添加測試計劃,並且可以自定義計劃名稱
4.2.1、在‘測試計劃’中添加‘線程組’
比如:這裏我設置10個線程,一直循環發請求
4.2.2、在‘測試計劃’中添加‘HTTP請求默認值’
一般會添下面的一些內容,路徑填寫請求ur中l除了ip+port的後面的部分
4.2.3、在‘測試計劃’中添加‘查看結果樹’
發送請求的響應結果,會在這裏顯示
4.2.4、在‘測試計劃’中添加‘圖形結果’
4.2.5、在‘測試計劃’中添加‘聚合報告’
4.3、執行
你還可以根據自己的需要添加別的功能進來。添加設置完後,執行