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編寫效能測試指令碼。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
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 開始執行效能測試。
如果引起了你的興趣,剩下的你自個玩吧!難點在效能測試指令碼的編寫上。