(三)Locust 創建性能測試
Locust 可沒有傻瓜式的腳本錄製功能,要想用它來做性能測試,必須擼起袖子來寫代碼。不過。它並不難!
編寫簡單的性能測試腳本
創建 load_test.py 文件,通過 Python 編寫性能測試腳本。
from locust import HttpLocust, TaskSet, task
# 定義用戶行爲
class UserBehavior(TaskSet):
@task
def baidu_index(self):
self.client.get("/")
class WebsiteUser(HttpLocust):
task_set = UserBehavior
min_wait = 3000
max_wait = 6000
UserBehavior類繼承TaskSet類,用於描述用戶行爲。
baidu_index() 方法表示一個用戶爲行,訪問百度首頁。使用@task裝飾該方法爲一個事務。client.get()用於指請求的路徑“/”,因爲是百度首頁,所以指定爲根路徑。
WebsiteUser類用於設置性能測試。
task_set :指向一個定義的用戶行爲類。
min_wait :執行事務之間用戶等待時間的下界(單位:毫秒)。
max_wait :執行事務之間用戶等待時間的上界(單位:毫秒)。
執行性能測試
啓動性能測試
> locust -f .\load_test.py --host=https://www.baidu.com
[2017-10-16 16:44:40,839] DESKTOP-SMGQBBM/INFO/locust.main: Starting web monitor at *:8089
[2017-10-16 16:44:40,842] DESKTOP-SMGQBBM/INFO/locust.main: Starting Locust 0.8
- -f 指定性能測試腳本文件。
- –host 指定被測試應用的URL的地址,注意訪問百度使用的HTTPS協議。
通過瀏覽器訪問:http://localhost:8089(Locust啓動網絡監控器,默認爲端口號爲: 8089)
設置測試
Number of users to simulate 設置模擬用戶數。
Hatch rate(users spawned/second) 每秒產生(啓動)的虛擬用戶數。
點擊 “Start swarming” 按鈕,開始運行性能測試。
運行測試
性能測試參數
Type: 請求的類型,例如GET/POST。
Name:請求的路徑。這裏爲百度首頁,即:https://www.baidu.com/
request:當前請求的數量。
fails:當前請求失敗的數量。
Median:中間值,單位毫秒,一半的服務器響應時間低於該值,而另一半高於該值。
Average:平均值,單位毫秒,所有請求的平均響應時間。
Min:請求的最小服務器響應時間,單位毫秒。
Max:請求的最大服務器響應時間,單位毫秒。
Content Size:單個請求的大小,單位字節。
reqs/sec:是每秒鐘請求的個數。