배포 설정을 했으니 배포된 서버의 테스트이다. 부하테스트는 여러툴이 있지만
간단하게 사용할 수있는 artillery를 사용했다.
NodeJS 기반으로 서버 성능 테스트를 할 수 있다.
artillery를 설치한다.
npm install -g artillery@1.6
npm install -g artillery@1.6
문서의 core concept를 들어가면 어떤 것을 목표로 테스트를 하는지 확인할 수 있다.
artillery.io/docs/guides/getting-started/core-concepts.html
하단의 artillery.io/docs/guides/getting-started/core-concepts.html#Putting-it-all-together
항목을 들어가서 스크립트를 복사한다.
config:
target: "https://shopping.service.staging"
phases:
- duration: 60
arrivalRate: 5
name: Warm up
- duration: 120
arrivalRate: 5
rampTo: 50
name: Ramp up load
- duration: 600
arrivalRate: 50
name: Sustained load
payload:
# Load search keywords from an external CSV file and make them available
# to virtual user scenarios as variable "keywords":
path: "keywords.csv"
fields:
- "keywords"
scenarios:
# We define one scenario:
- name: "Search and buy"
flow:
- post:
url: "/search"
body: "kw={{ keywords }}"
# The endpoint responds with JSON, which we parse and extract a field from
# to use in the next request:
capture:
json: "$.results[0].id"
as: "id"
# Get the details of the product:
- get:
url: "/product/{{ id }}/details"
# Pause for 3 seconds:
- think: 3
# Add product to cart:
- post:
url: "/cart"
json:
productId: "{{ id }}"
이러한 스크립트가 있는데 여기서 내가 테스트할 항목을 선택해서 테스트를 하면된다.
target URL에 내가 테스트할 서버, duration 시간, arrivalRate는 접근하는 개체수 이다.
이 스크립트를 test.yml로 저장을 한다.
artillery run --output report.json ./test.yml
테스트를 완료했으면 report.json 파일이 생긴다.
artillery report ./report.json
해당 명령을 입력하면 테스트 결과를 html 로 출력한다.
'회고 모음 > Project' 카테고리의 다른 글
9. Database 설정하기 (0) | 2021.04.12 |
---|---|
8. Nginx 설정 (0) | 2021.04.09 |
6. CI, CD 설정 (젠킨스, 도커) (0) | 2021.04.01 |
5. 프로젝트 설정 (0) | 2021.03.27 |
4. 일정 관리 (0) | 2021.03.26 |