Locust入門教程

Locust 官方網站:https://www.locust.io/

1. Locust 介紹

An open source load testing tool.
一個開源性能測試工具。
define user behaviour with python code, and swarm your system with millions of simultaneous users.
使用 Python 代碼來定義用戶行爲。用它可以模擬百萬計的併發用戶訪問你的系統。

1.1 性能工具對比

  • LoadRunner 是非常有名的商業性能測試工具,功能非常強大。使用也比較複雜,目前大多介紹性能測試的書籍都以該工具爲基礎,甚至有些書整本都在介紹 LoadRunner 的使用。

  • Jmeter 同樣是非常有名的開源性能測試工具,功能也很完善,在本書中介紹了它作爲接口測試工具的使用。但實際上,它是一個標準的性能測試工具。關於Jmeter相關的資料也非常豐富,它的官方文檔也很完善。

  • Locust 同樣是性能測試工具,雖然官方這樣來描述它 “An open source load testing tool.” 。但其它和前面兩個工具有着較大的不同。相比前面兩個工具,功能上要差上不少,但它也並非優點全無。

  • Locust 完全基本 Python 編程語言,採用 Pure Python 描述測試腳本,並且 HTTP 請求完全基於 Requests 庫。除了 HTTP/HTTPS 協議,Locust 也可以測試其它協議的系統,只需要採用Python調用對應的庫進行請求描述即可。

  • LoadRunner 和 Jmeter 這類採用進程和線程的測試工具,都很難在單機上模擬出較高的併發壓力。Locust 的併發機制摒棄了進程和線程,採用協程(gevent)的機制。協程避免了系統級資源調度,由此可以大幅提高單機的併發能力。

2. 安裝

2.1 方式一:通過 pip 命令安裝

pip install locust

2.2 方式二:GitHub下載安裝

將項目克隆下來,通過Python 執行 setup.py 文件

最後,檢查是否安裝成功。在命令行中輸入 “locust --help” 回車。

3. Locust 創建性能測試

3.1 編寫性能測試腳本

創建 locustfile.py 文件

from locust import HttpUser, between, task


class WebsiteUser(HttpUser):
    wait_time = between(5, 15)
    
    @task
    def index(self):
        self.client.get("/")
        
    @task
    def keyword(self):
        self.client.get("/s?wd=locust")
        self.client.get("/s?wd=測試")

3.2 執行性能測試腳本

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

3.3 運行測試

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

3.3.1 設置併發參數、並啓動測試

在這裏插入圖片描述

  1. Number of users to simulate 設置模擬用戶數。
  2. Hatch rate(users spawned/second) 每秒啓動的虛擬用戶數(小於總用戶數,以便看到用戶數增長相關趨勢變化)。
  3. 點擊 “Start swarming” 按鈕,開始運行性能測試。

4. 性能測試/界面參數說明

4.1 Top

在這裏插入圖片描述

4.2 Statistics

在這裏插入圖片描述

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

4.3 Charts

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

在這裏插入圖片描述

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

在這裏插入圖片描述

4.3.3 虛擬用戶數運行

在這裏插入圖片描述

4.4 Failures

在這裏插入圖片描述

4.5 Exceptions

在這裏插入圖片描述

4.6 Download Data

在這裏插入圖片描述

5. Locust no-web模式

6. Locust 參數說明

7. Locust 分佈式運行

8. Locust 的類和方法

9. Locust 設置斷言

10. Locust 參數化

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章