Locust in docker

Locust是一種基於Python編寫的開源負載測試工具,它可以模擬大量用戶同時訪問網站或API,以測試系統的性能和可靠性。Locust的使用非常簡單,只需要編寫一些Python腳本即可模擬用戶的行為,並通過圖形化界面實時監控系統的性能指標,如請求成功率、平均響應時間、並發用戶數等。Locust還支持多種協議,如HTTP、WebSocket、TCP等,並提供了豐富的插件和擴展功能,可以滿足不同場景下的負載測試需求。

使用docker-compose建置Locust的好處包括:

1. 簡化安裝流程:使用docker-compose可以快速部署和配置Locust,不需要手動安裝和設定。
2. 方便管理:使用docker-compose可以輕鬆管理Locust的版本和依賴庫,以及將整個應用程序容器化。
3. 提高可移植性:使用docker-compose可以讓Locust應用程序在不同的環境中運行,並且可以輕鬆地在不同的機器之間移植。
4. 簡化測試:docker-compose可以讓您在本地或在CI/CD環境中快速啟動Locust,並且可以輕鬆地自動化測試流程。

總之,使用docker-compose可以簡化Locust的部署和管理,提高可移植性和自動化測試流程,是一種非常方便和有用的工具。

Docker-compose

version: '3'
 
services:
  master:
    image: locustio/locust:2.8.5
    ports:
     - "8089:8089"
    volumes:
      - ./:/mnt/locust
    command: -f /mnt/locust/locustfile.py --master --web-host 0.0.0.0

  worker:
    image: locustio/locust:2.8.5
    volumes:
      - ./:/mnt/locust
    command: -f /mnt/locust/locustfile.py --worker --master-host master

測試檔案 locustfile.py

from locust import HttpUser, task, between, events
@events.request.add_listener
def on_request(request_type, name, response_time, response_length, exception, context, **kwargs):
    """
    Event handler that get triggered on every request.
    """
    if exception:
        print(f"Exception title: {exception}")
        print(f"Exception text:{exception.response.text}")

class QuickstartUser(HttpUser):
    wait_time = between(1, 5)
    @task
    def hello_API(self):
        self.client.post("/API/PATH",
            json={},
            headers = {}
    ) 

如何啟動

docker-compose up --scale worker=5

Add a Comment

發佈留言必須填寫的電子郵件地址不會公開。