效能測試工具Locust

發表於2017-02-17

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:

官方:https://www.python.org/

安裝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編寫效能測試指令碼。

建立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

相關文章