什么是 Locust
Locust官網(wǎng):https://www.locust.io/
Locust是一個簡單易用的分布式負(fù)載測試工具柿祈,主要用來對網(wǎng)站進(jìn)行負(fù)載壓力測試酥馍。
特性:
- 可以通過Python編寫模擬用戶行為的代碼蒿偎,簡單易用
- 分布式可擴(kuò)展,能夠支持上百萬用戶
- 自帶Web界面
- 不僅能測試web系統(tǒng)席爽,也可以測試其它系統(tǒng)
安裝Locust
GitHub下載安裝
項目地址:https://github.com/locustio/locust/
clone下來之后末早,通過Python 執(zhí)行 setup.py 文件即可安裝使用pip命令安裝
pip install locust
-
驗證是否安裝成功
打開cmd,輸入locust –help
出現(xiàn)此界面說明安裝成功
簡單的Locust性能測試
- 創(chuàng)建 load_test.py 文件
# @Time : 2018/3/7 15:28
# @Author : Cr
# @File : load_test.py
from locust import HttpLocust,TaskSet,task
class Test(TaskSet):
@task(1)
def baidu(self):
self.client.get("/")
class WebsiteUser(HttpLocust):
task_set = UserBehavior
min_wait = 3000
min_wait = 6000
代碼解析:
- 創(chuàng)建Test()類繼承TaskSet類
- 創(chuàng)建baidu() 方法表示一個行為涛浙,訪問百度首頁康辑。client.get()用于指請求的路徑“/”,因為是百度首頁轿亮,所以指定為根路徑晾捏。
- 用@task() 裝飾該方法為一個任務(wù)。1表示一個Locust實例被挑選執(zhí)行的頻率哀托,數(shù)值越大,執(zhí)行頻率越高劳秋。
- WebsiteUser()類用于設(shè)置性能測試仓手。
- task_set :指向一個定義了的用戶行為類。
- min_wait :用戶執(zhí)行任務(wù)之間等待時間的下界玻淑,單位:毫秒嗽冒。
- max_wait :用戶執(zhí)行任務(wù)之間等待時間的上界,單位:毫秒补履。
開始性能測試
locust -f load_test.py --host=https://www.baidu.com
- -f 指定性能測試腳本文件
-
–host 指定被測試應(yīng)用的URL的地址
通過瀏覽器訪問:http://localhost:8089
- Number of users to simulate 設(shè)置模擬用戶數(shù)添坊。
- Hatch rate(users spawned/second) 每秒產(chǎn)生(啟動)的虛擬用戶數(shù)。
- 點擊 “Start swarming” 按鈕箫锤,開始運(yùn)行性能測試贬蛙。