python+locust性能測試(一)之locust性能測試入門


一、Locust簡介

  Locust是一款易於使用的分布式用戶負載測試工具。它用於對網站(或其他系統)進行負載測試,並確定系統可以處理多少並發用戶。
  Locust完全基於事件,因此可以在一台計算機上支持數千個並發用戶。
Locust的特點:
    1、使用簡單的python語言編寫測試腳本,非常簡單輕便,不需要笨重的UI和XML代碼;
    2、分布式的,可擴展性,可模擬上百萬用戶。Locust支持多機器的性能測試,每台機器可以模擬上千用戶,也可以對用戶數進行控制;
    3、Locust有一個整潔的HTML+JS的用戶界面,實時顯示相關的測試細節。由於用戶界面是基於網絡的,它是跨平台的和容易擴展的;
    4、可以測試任何系統,盡管Locust是基於網站的,它幾乎可以測試任何系統,只需要一個客戶端;

二、Locust的安裝

Locust 的安裝方式如下:
      pip install locustio

安裝完成后,執行 locusts -V 可查看到 Locust 的版本號,證明安裝成功:
       locusts -V


執行 locusts -h,可查看到使用幫助文檔。

三、Locust簡單實例

locust里面請求是基於requests的,每個方法請求和requests差不多,請求參數、方法、響應對象和requests一樣的使用;
requests.get 對應client.get
requests.post 對應client.post
舉例說明:打開phpwind首頁接口

編寫說明:
1、從locust模塊中導入HttpLocust, TaskSet, task, between類;
2、自定義類(如phpwind),該類需要繼承TaskSet,用來編寫需要進行性能進行的接口;一個接口可定義成一個函數,接口的數量不限。self.client調用的get和post與requests中是一樣的;
3、每一個要執行的接口之前需要用到@task()修飾器,括號里面參數表示該行為挑選執行的權重,數值越大,執行頻率越高,不設置默認是1
4、編寫websitUser類,該類繼承自HttpLocust,用於設置性能測試。類中的TaskSet用來指向用戶行為;wait_time用來指定的等待時間,可以用between函數,也可以是用戶自定義的函數來設置時間;
注:bewteen(5,8)----每個模擬用戶將在請求之間等待5到8秒

四、執行性能測試

執行性能測試的命令:
locusts -f  py文件的測試用例 
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9pbWcyMDIwLmNuYmxvZ3MuY29tL2Jsb2cvMTExODE3Mi8yMDIwMDQvMTExODE3Mi0yMDIwMDQyMDIwNDM0MDQyOS00MzIwNzY4NjkucG5n?x-oss-process=image/format,png)

host:表示被壓測的主機名

五、web界面說明

執行上述命令后,即完成了 Locust 服務的啟動,后續就可以在 Locust 的 Web 管理界面中進行操作了;


上圖紅色圈住的部分是web界面的路徑;*號部分用主機的ip地址替換,8089是端口號;
由於是在本機上搭建的locust,所以可以直接在瀏覽器輸入http://localhost:8089/打開,
如果是在其它機器上搭建的locust服務,那就通過http://其它機器IP:8089/打開

此時可以打開web界面進行性能測試操作;

locust界面的輸入框:
Number of users to simulate 是用戶並發數
Hatch rate (users spawned/second)是每秒啟動用戶數
host:表示測試的主機地址

比如設置了並發數為20,啟動數為10,效果界面如下所示:

Type:請求類型;
Name:請求路徑;
requests:當前請求的數量;
fails:當前請求失敗的數量;
Median:中間值,單位毫秒,一般服務器響應時間低於該值,而另一半高於該值;
Average:所有請求的平均響應時間,毫秒;
Min:請求的最小的服務器響應時間,毫秒;
Max:請求的最大服務器響應時間,毫秒;
Content Size:單個請求的大小,單位字節;
reqs/sec:每秒鍾請求的個數。
點擊 stop 可以停止測試
點擊New test可以重新設置用戶數
RPS:每秒鍾請求的個數, 在進行性能測試時,要參考設置的並發數進行分析
FAILURES:失敗率
STATUS:運行的狀態

圖表展示界面,此界面有三個圖標,分別是:
1、吞吐量/每秒響應事務數(rps)實時統計
2、平均響應時間/平均事務數實時統計
3、虛擬用戶數運行


此界面顯示失敗的接口情況

此界面顯示出現的異常情況

此界面可以下載測試數據保存到本地


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM