1. 程式人生 > >Python 效能測試工具 locust 簡介

Python 效能測試工具 locust 簡介

簡介:

locust 是Python實現的一個性能測試工具。

優點:

1. 易用。很方便地基於Python進行指令碼擴充套件和業務請求實現。

2. 完全基於事件驅動,所以不受程序和執行緒的限制,可以支援發起更高的併發數請求。

3. 可以分散式發起併發請求。

4. 開源。

缺點:

1. 圖表相對loadrunner 比較簡單。(在Linux 下部署時可以看到圖表,在Windows 下沒有)

2. 不支援監控被測機,需要結合nmon等工具輔助監控。

版本:

1. 最新版本 0.8a2 : 支援 Python 2.7, 3.3, 3.4, 3.5, and 3.6

2.注意之前的版本不支援Python3,所以安裝時請留意選擇對應版本。

參考文件:

安裝:

1. Python 下安裝:pip install locustio 或 pip install locust

2. 如需進行分散式壓測,還需要安裝pyzmq 模組:pip install pyzmq

3. 命令列中輸入 locust -V 檢查是否安裝成功以及版本是否正確:

安裝 2:

  在 github 上下載最新版本的原始碼:

https://github.com/locustio/locust

下載到本地後,解壓,命令列進入對應目錄後,執行 python3 setup.py install  進行安裝。

指令碼例子:

locustfile.py

實現舉例1 :

實現舉例2:

以上兩種實現方式的效果是一樣的,區別在於後一種方式引入了 task 裝飾器來指定每個task 的執行比例,如果新增 task ,新增起來比較方便。

執行:

1. 單機執行:可以有以下3種啟動方式:

1.1 在命令列中進入locustfile.py 檔案所在目錄, 然後執行 locust :

1.2 指定具體指令碼:

locust -f 指定的指令碼,如下:

1.3 指定被測host 物件:如果指令碼中已指定了host,則啟動命令可以不需要host 引數

locust -f 指定的指令碼 --host=指定伺服器,如下:

啟動好後,瀏覽器進入 http://localhost:8089/

 頁面(如果是在另一臺機上檢視,將localhost修改為對應的 ip 地址或主機名即可)可看到對應的操作頁面:

Number of users to simulate :併發使用者數

Hatch rate (users spawned/second): 每秒新增使用者數

例如分別輸入100 和 10 , 則從0開始,每秒新增10個新使用者進行併發。到達100個使用者時,持續進行併發測試,直至手動停止:

停止: 在啟動的命令列視窗按 ctrl +c 停止程序。

2. 分散式併發執行:

2.1 首先,需要在每臺機器上安裝locust,並確保測試指令碼已同步到每臺機器。

2.2 以其中一臺機器作為主機啟動(用以管理所有機器和發起請求):

在主機中執行以下命令(是否需要指定host 和 file視個人具體設定而定):

locust -f locust_files/my_locust_file.py --master --host=http://example.com

2.3 在其他機器中作為備機(slave)啟動:

locust --slave --master-host=localhost

其中 master-host 為已啟動的主機地址,如果是在同一臺機器(同一臺機器中以新的命令列視窗啟動),可以省略該引數:

locust --slave

此時在主機的管理頁面可以看到已連線的備機數量。

2.4 發起併發請求:

在管理頁面發起請求時,主機會將相關任務分配到對應的備機中執行,主機不負責發起請求。

注意:同一臺機器中既可以啟動一臺主機、多臺備機,也可以啟動多臺備機。

執行效果如下:

報表檢視:

(GitHub 上最新的程式碼才有chart模組,如需使用可下載最新原始碼進行安裝)

圖表可以簡單看到以下資訊:

total requests per second: 每秒發起的請求數

average response time:平均響應時間

number of users: 當前併發使用者數

檢視失敗資訊和異常:

可分別在 failures 標籤和 exception 標籤檢視到失敗和異常資訊:

執行結果可以在 download data 標籤點選下載對應表格:

鑑於locust 無法實時對被測機進行監控,建議結合 nmon 進行監控。具體使用方式請參考以下: