서버관련

docker를 이용한 LOCUST 서버 성능 테스트 예제

탄생 2022. 7. 18. 17:05

● LOCUST란?

Locust는 사용하기 쉽고 스크립트 가능하며 확장 가능한 성능 테스트 도구입니다.
Python 코드를 활용하여 개발자가 원하는 서버의 성능 테스트를 진행할 수 있습니다.

이번 문서에서는 기본적인 설치 및 성능 테스트 방법만 진행하여 기본 구조만 익히는것이 목표입니다.

더 자세한 테스트는 커스텀하여 활용할 수 있도록 참조 URL로 대체하겠습니다.


● LOCUST 설치

1.  테스트 스크립트 작성

Locust를 통해 서버 성능을 테스트할 스크립트를 작성합니다.
간단하게 http 로 "/ping" 을 실행하여 서버의 결과를 확인하는 것입니다.

locustfile.py 파일 생성

from locust import HttpUser, task, between

class Quickstart(HttpUser):
    wait_time = between(1, 2)

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

 

※ 더 자세한 스크립트 작성방법은 아래 링크를 참조해 주세요.(post, get parameter 활용등)

https://mokpolar.tistory.com/12
https://docs.locust.io/en/stable/writing-a-locustfile.html

 

2.  Running in Docker

1번에서 작성한 테스트 스크립트(locustfile.py)와 동일한 경로에 있을 경우 -f /mnt/locust/locustfile.py 옵션

  • compose 파일 작성하여 실행

locust-docker-compose.yml

version: '3'

services:
  master:
    image: locustio/locust
    ports:
     - "8089:8089"
    volumes:
      - ./:/mnt/locust
    command: -f /mnt/locust/locustfile.py --master -H http://master:8089
  
  worker:
    image: locustio/locust
    volumes:
      - ./:/mnt/locust
    command: -f /mnt/locust/locustfile.py --worker --master-host master
$> docker-compose -f locust-docker-compose.yml up --scale worker=2

※ locust docke-compose 
https://docs.locust.io/en/stable/running-in-docker.html#docker-compose

 

3.  LOCUST 테스트

성능 테스트를 진행할 host를 정의 후 start를 합니다.
테스트 할 서버가 local에서 실행시에는 ipconfig를 통해 IPv4주소를 입력해 주시고 운영시에는 도메인 주소를 입력하여 성능 테스트를 진행하면 됩니다.