一、JMeter概述
JMeter是一個100%的Java應用程序,用於基於HTTP協議測試Web應用程序或 FTP、JDBC、SOAP、REST等協議的功能和性能。
JMeter可以模擬大量的用戶同時訪問參考和指定的Web應用程序,以了解Web應用程序在高負載下的性能。
除了基本性能測試,JMeter還可以通過使用測試數據文件和變量,來測試Web應用程序的功能、數據完整性和安全性。
二、JMeter的安裝和配置
有兩種方法安裝JMeter:
1.下載程序包
wget https://downloads.apache.org//jmeter/binaries/apache-jmeter-5.5.tgz sudo tar -xvzf apache-jmeter-5.5.tgz -C /usr/local/ rm apache-jmeter-5.5.tgz cd /usr/local/ sudo ln -s apache-jmeter-5.5/ jmeter
2.使用Docker方式
# 從Docker Hub上下載JMeter鏡像 sudo docker pull justb4/jmeter:latest # 運行容器 sudo docker run -it --rm --name jmeter -v ${PWD}:/test justb4/jmeter -n -t /test/test.jmx -l /test/test.jtl # 解釋命令: # -it:因為使用到GUI界面,所以必須要加這個 # --rm:運行容器完成後會自動刪除 # --name:自定義容器名稱 # -v:路徑映射,將host的當前工作目錄與docker容器中/test目錄映射 # -n:指定Non GUI模式運行 # -t:執行的JMeter腳本文件 # -l:指定輸出文件
三、JMeter功能測試示例
以下是一個簡單的示例,演示如何使用JMeter進行Web應用程序的功能測試:我們要測試一個登錄表單,其中包含用戶名、密碼和登錄按鈕,當用戶單擊登錄按鈕時,應用程序將驗證用戶憑據,如果是有效的,則允許用戶登錄系統。
1.創建測試計劃
在JMeter中,每個測試都是一種計劃,需要先創建測試計劃:
- 打開JMeter。
- 點擊菜單,選擇File > New。
- 輸入”測試計劃”的名稱,然後單擊OK。
2.添加線程組
線程組是測試計劃中的一個基本元素,它代表一組並發用戶。在這個示例中,我們將有一組用戶模擬執行測試操作。可以通過以下步驟添加線程組:
- 在測試計劃中,右鍵單擊”測試計劃”,選擇Add > Threads(Users) > Thread Group。
- 為線程組輸入一個名稱,例如”Web應用程序測試組”。
- 設置線程組的屬性:
Number of Threads: 10 - 表示將有10個並發用戶執行測試。 Ramp-Up Period: 1 - 表示每個用戶應該在1秒內啟動。 Loop Count: 5 - 表示每個用戶應該執行測試計劃的循環5次,以表示持續的用戶測試。
3.添加HTTP請求
要向Web應用程序發出請求,請在線程組中添加HTTP請求:
- 在線程組上右鍵單擊,選擇Add > Sampler > HTTP Request。
- 輸入請求的名稱,例如”登錄請求”。
- 在Server Name or IP中輸入Web應用程序的URL。
- 在Path中輸入請求頁面的路徑,例如”/login.php”。
4.添加HTTP參數
在添加請求時,可以在“請求”選項卡中指定請求參數。例如,對於登錄請求,應包含用戶名和密碼:
- 在HTTP請求下,單擊“添加”按鈕,在列表中選擇“HTTP請求參數”。
- 在“名稱”字段中輸入參數名,例如”Username”。
- 在“值”字段中輸入參數值,例如”testuser”。
5.添加斷言
斷言用於驗證請求是否返回預期結果。例如,如果已成功登錄,則應該返回一個特定的消息,你可以在響應中查找該消息並進行驗證:
- 在HTTP請求下,單擊“添加”按鈕,選擇“響應斷言”。
- 在“響應字段”中選擇“響應數據”,在“匹配規則”中選擇“包含”,並輸入期望的響應消息。
四、JMeter性能測試示例
以下是一個簡單的示例,演示如何使用JMeter進行Web應用程序的性能測試:
1.創建測試計劃
如上。
2.配置線程組
與功能測試一樣,需要配置線程組:
Number of Threads: 100 - 表示將有100個並發用戶執行測試。 Ramp-Up Period: 10 - 表示每個用戶應該在10秒內啟動。 Loop Count: 10 - 表示每個用戶應該執行測試計劃的循環10次,以表示持續的用戶測試。
3.添加HTTP請求
同上。
4.設置HTTP Sampler屬性
性能測試需要測試多次,觀察服務器在高負載下的性能。因此,需要設置HTTP Sampler的屬性如下:
Method - GET或POST Use Keep-Alive - 勾選 Implementation - HttpClient4
5.添加斷言
同上。
五、JMeter壓測分布式測試示例
以下是一個簡單的示例,演示如何使用JMeter進行Web應用程序的壓力測試:
1.創建測試計劃
如上。
2.配置分布式測試
- 將運行JMeter server的機器稱為”Master節點”。
- 將運行JMeter client的機器稱為”Slave節點”。
- 編輯jmeter.properties文件,可以使用IP地址配置ip_aliases,例如:
remote_hosts=192.168.0.2,192.168.0.3,192.168.0.4 client.rmi.localport=7000 server.rmi.ports=60000-60005
3.啟動Master節點
jmeter -n -s -Jserver.rmi.localport=60000
4.啟動Slave節點
jmeter -n -Jclient.rmi.localport=7000
5.配置測試計劃
如上。
六、JMeter腳本編寫示例
JMeter測試腳本是一個XML文件,可以使用JMeter GUI創建。
false false false true false continue false 1 1 1 1404187311000 1404187311000 false www.example.com http /login.php GET true false true false false
原創文章,作者:EWBUF,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/333289.html