locust性能測試


簡介:

An open source load testing tool.

一個開源性能測試工具。

define user behaviour with python code, and swarm your system with millions of simultaneous users.

使用Python代碼來定義用戶行為。用它可以模擬百萬計的並發用戶訪問你的系統。

Locust 完全基本 Python 編程語言,采用 Pure Python 描述測試腳本,並且 HTTP 請求完全基於 Requests 庫。

除了 HTTP/HTTPS 協議,Locust 也可以測試其它協議的系統,只需要采用Python調用對應的庫進行請求描述即可。

LoadRunner 和 Jmeter 這類采用進程和線程的測試工具,都很難在單機上模擬出較高的並發壓力。

Locust 的並發機制摒棄了進程和線程,采用協程(gevent)的機制。協程避免了系統級資源調度,由此可以大幅提高單機的並發能力

安裝:

通過PIP命令安裝:

pip install locust

編寫腳本:

from locust import HttpUser, TaskSet, task

class UserBehavior(TaskSet):

@task(1)
def baidu(self):
self.client.get("/")

class WebsiteUser(HttpUser):
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 .\locustfile.py  --host=https://www.baidu.com

-f 指定性能測試腳本文件。
–host 指定被測試應用的URL的地址

輸出:

[2020-06-20 11:16:09,859] WINDOWS-8TS3PNG/WARNING/locust.main: System open file limit setting is not high enough for load testing, and the OS wouldnt allow locust to increase it by itself. See https://docs.locust.io/en/stable/installation.html#increasing-maximum-number-of-open-files-limit for more info.
[2020-06-20 11:16:09,860] WINDOWS-8TS3PNG/INFO/locust.main: Starting web interface at http://:8089
[2020-06-20 11:16:09,874] WINDOWS-8TS3PNG/INFO/locust.main: Starting Locust 1.0.3

進行測試:

通過瀏覽器訪問:http://localhost:8089(Locust啟動網絡監控器,默認為端口號為: 8089)

 

 Number of users to simulate 設置模擬用戶數。

Hatch rate(users spawned/second) 每秒產生(啟動)的虛擬用戶數。

點擊 “Start swarming” 按鈕,開始運行性能測試。

運行結果:

參數 說明
Type 請求的類型,例如GET/POST
Name 請求的路徑。
request 當前請求的數量
fails 當前請求失敗的數量
Median 中間值,單位毫秒,一半的服務器響應時間低於該值,而另一半高於該值
Average 平均值,單位毫秒,所有請求的平均響應時間
Min 請求的最小服務器響應時間,單位毫秒
Max 請求的最大服務器響應時間,單位毫秒
Content Size 單個請求的大小,單位字節
reqs/sec 是每秒鍾請求的個數

Charts

吞吐量/每秒響應事務數(rps)實時統計

 

 平均響應時間/平均事務數實時統計

 

 虛擬用戶數運行

 

 基本測試完成,重點是測試腳本的編寫。

 


免責聲明!

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



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