Locust 是一個開源負載測試工具,使用 Python 代碼定義用戶行為
安裝
pip install locust
查看是否安裝成功
locust -V
測試locustfile.py
import time
from locust import HttpUser, task, between class QuickstartUser(HttpUser): wait_time = between(1, 2.5) @task def hello_world(self): self.client.get("/hello") self.client.get("/world") def on_start(self): self.client.post("/login", json={"username":"foo", "password":"bar"})
說明:
為模擬的用戶定義一個類。它繼承自HttpUser,為每個用戶提供了一個 client 屬性,該屬性是HttpSession的一個實例。可用於向負載測試的目標系統發出 HTTP 請求
為它每個虛擬用戶創建一個此類的實例,並且每個虛擬用戶會在自己的 gevent 線程中運行這些實例
on_start() 方法是在虛擬用戶啟動(啟動事件)時會觸發的方法
只有通過 @task
裝飾的方法才會在 Locust 虛擬用戶運行過程中被調用
啟動
locust -f locustfile.py --web-host="127.0.0.1"
啟動 Locust 后,會在本地開啟一個服務
瀏覽器打開web監控頁面 ,http://127.0.0.1:8089/
說明:
Number of users to simulate:模擬的總虛擬用戶數
Hatch rate (users spawned/second):每秒啟動的虛擬用戶數
HOST:測試的地址
輸入參數點擊Start swarming,開始運行性能測試
Statistics聚合報告
說明
Type:請求類型
Name:請求名稱
requests:當前已完成的請求數量
fails:當前失敗的數量
Median:響應時間的中間值,單位為毫秒
90%ile:根據正態分布,90%的響應時間在正態分布平均值下方
Average:平均響應時間,單位為毫秒
Min:最小響應時間,單位為毫秒
Max:最大響應時間,單位為毫秒
average Size:平均每個請求的數據量,單位為字節
current RPS(requests per second):每秒鍾處理請求的數量,即RPS
Charts曲線展示
Failures失敗請求的展示
Exceptions異常請求的展示
Download Data測試數據下載模塊