An open source load testing tool.
一個開源性能測試工具。
define user behaviour with python code, and swarm your system with millions of simultaneous users.
使用Python代碼來定義用戶行為。用它可以模擬百萬計的並發用戶訪問你的系統。
如果你常關注我的博客,大概會注意到我有三、四年沒有寫過關於性能測試的文章了,其實,今年也沒更新幾篇像樣的博客,反而是我最忙的一年,原因是在寫一本關於接口自動化的書。
回到主題,為何突然關注性能測試工具?其實,我只是單純對Locust工具本身感興趣而已。1、它與目前主流的LoadRunner和Jmeter玩法都不一樣。2、它完全基於Python開發,用Python來編寫用戶行為。
嗯,如果想用好它的話,你必須對Web開發有一定的認識。而且還要熟悉Python開發。
官方網站:http://locust.io/
Locust安裝
1、安裝Python:
安裝Python2 或Python3
2、安裝Locuse
2.1, 通過pip命令安裝 /> pip install locustio
2.2, 通過GitHub上克隆項目安裝(Python3推薦):https://github.com/locustio/locust
3、安裝 pyzmq
If you intend to run Locust distributed across multiple processes/machines, we recommend you to also install pyzmq.
如果你打算運行Locust 分布在多個進程/機器,我們建議你也安裝pyzmq.
通過pip命令安裝。 /> pip install pyzmq
4、安裝成功,CMD敲入命令驗證。 /> locust --help
編寫簡單的性能測試腳本
創建load_test.py文件,通過Python編寫性能測試腳本。
from locust import HttpLocust, TaskSet, task class UserBehavior(TaskSet): @task(1) def baidu(self): self.client.get("/") class WebsiteUser(HttpLocust): task_set = UserBehavior min_wait = 3000 max_wait = 6000
創建UserBehavior()類繼承TaskSet類,為用戶行為。
創建baidu() 方法表示一個行為,訪問百度首頁。用@task() 裝飾該方法為一個任務。1表示一個Locust實例被挑選執行的權重,數值越大,執行頻率越高。在當前UserBehavior()行為下只有一個baidu()任務,所以,這里的權重設置為幾,並無影響。
WebsiteUser()類用於設置性能測試。
task_set :指向一個定義了的用戶行為類。
min_wait :用戶執行任務之間等待時間的下界,單位:毫秒。
max_wait :用戶執行任務之間等待時間的上界,單位:毫秒。
運行性能測試
切換到性能測試腳本所在的目錄,啟動性能測試:
------------------------------------------------------------------
.../> locust -f load_test.py --host=https://www.baidu.com
[2016-11-19 22:38:16,967] fnngj-PC/INFO/locust.main: Starting web monitor at *:8089
[2016-11-19 22:38:16,967] fnngj-PC/INFO/locust.main: Starting Locust 0.7.5
-----------------------------------------------------------------
load_test.py 為測試腳本,https://www.baidu.com 為測試的網站。
打開瀏覽器訪問:http://127.0.0.1:8089
Number of users to simulate 設置模擬用戶數
Hatch rate (users spawned/second) 孵化率?不知道怎么翻譯,每秒產生(啟動)的用戶數。
點擊Start swarming 開始運行性能測試。
如果引起了你的興趣,剩下的你自個玩吧!難點在性能測試腳本的編寫上。
參考文檔:http://docs.locust.io/en/latest/quickstart.html
------------------------
Locust 系列教程: