Locust 부하테스트 설치, 스크립트

박현석·2024년 6월 10일
post-thumbnail

대용량 트래픽 과정을 복습하였다.
Locust 는 성능부하 테스트를 위한 tool 이고 Python 언어를 통한 스크립트 작성을 호환한다.

설치는 간단하였다.

pip install locust

# poetry를 사용한다면
poetry add locust

# 설치 확인
locust -V

이렇게 설치를 완료 하고 locustfile.py 에서 간단한 스크립터를 작성해주었다.

from locust import HttpUser, task, between
import random


class MovieServer(HttpUser):
    waiting_time = between(1, 1.5)

    # def on_start(self):
    #     self.client.post("/login", json={})

    @task
    def search(self):
        thing = random.choice(["가", "나", "다", "라", "마", "바", "사", "아", "자", "차", "카", "타", "파", "하"])
        nation = random.choice(["KOREA", "NETHERLANDS", "TAIWAN", "GERMANY", "DENMARK", "RUSSIA", "MEXICO",
                                "USA", "BRAZIL", "SPAIN", "UK", "ITALY", "INDIA", "JAPAN", "CHINA", "CANADA", "FRANCE",
                                "HONGKONG"])
        ageLimit = random.choice(["GENERAL", "PG_12", "PG_15", "RESTRICTED"])
        page = 1
        sort = random.choice(["audience"])

        headers = {'Content-Type': 'application/json'}
        self.client.get(
            url=f"/movies/api/v2/search?thing={thing}&nation={nation}&ageLimit={ageLimit}&page=1&sort={sort}",
            headers=headers
        )

HttpUser -

  • 서버에 부하를 가할 유저를 나타내는 클래스이다.
    tasks 애트리뷰트에 선언된 작업 또는 @task 데코레이터가 붙여진 작업을 수행한다.
profile
너에게만광대

0개의 댓글