Post

Artillery 부하 테스트

Artillery 부하 테스트

Spring 백엔드 서버의 부하테스트를 진행하기 위헤 Artillery라는 라이브러리를 사용했습니다. VS Code로 간단하게 테스트 할 수 있기에 좋은 것 같습니다. Jmeter로 테스트 하실 분들은 패스해주세요

Artillery 테스트 실행 가이드

1. 백엔드 서버 준비

스프링 백엔드 프로젝트 디렉토리로 이동: cd path/to/spring-backend

스프링 애플리케이션 실행 : ./mvnw spring-boot:run 또는 Gradle을 사용하는 경우 : ./gradlew bootRun

백엔드 서버가 정상적으로 실행되었는지 확인 (보통 http://localhost:8080)

2. Artillery 테스트 환경 설정

프로젝트 루트 디렉토리나 별도의 테스트 디렉토리를 만들어 이동: mkdir artillery-tests cd artillery-tests

Artillery 설치: npm install -g artillery

3. Artillery 테스트 구성 파일 생성

  • test.yml 파일 생성:touch test.yml

에디터로 test.yml 열고 테스트 구성 작성:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
yamlCopyconfig:
  target: "ws://localhost:8080"
  phases:
    - duration: 60
      arrivalRate: 10
  plugins:
    metrics-by-endpoint: {}

scenarios:
  - engine: ws
    flow:
      - connect: "/omg"
      - send: 
          channel: "/pub/game-initialize"
          
          data: '{"roomId": "ROOM_ID_{{ $randomNumber(1,1000) }}"}'
      - think: 1
      - loop:
          - send:
              channel: "/pub/player-move"
              data: '{"roomId": "ROOM_ID_{{ $randomNumber(1,1000) }}", "x": {{ $randomNumber(0,100) }}, "y": {{ $randomNumber(0,100) }}}'
              
          - think: 0.016
        count: 250

4. Artillery 테스트 실행

테스트 실행: artillery run test.yml

결과를 파일로 저장하려면: `artillery run –output test-report.json test.yml

5. 테스트 결과 분석

추가적으로 저장된 테스트 결과 test.json 을 그래프화 할 수 있는 명령어도 제공합니다.

JSON 결과를 HTML 보고서로 변환: artillery report test-report.json

생성된 test-report.html 파일을 웹 브라우저에서 열어 결과 확인

6. 추가 고려사항

실제 프로덕션 환경과 유사한 조건에서 테스트 수행 다양한 시나리오와 부하 패턴으로 여러 번 테스트 실행 백엔드 서버의 리소스 사용량 모니터링 (CPU, 메모리, 네트워크 I/O) 필요에 따라 테스트 구성 파일 수정 및 최적화

테스트 분석 환경

artillery.io

해당 URL에서 깃헙으로 로그인 하여 사용합니다.

This post is licensed under CC BY 4.0 by the author.