Día de Ruru
20230502 TIL 본문
서버는 제대로 배포가 되었는데 유저테스트를 진행하기 전에 서버 모니터링이나 서버 부하테스트를 해보고 싶어서 이것저것 알아보다가 Artillery를 알게되었다. Artillery는 간편하게 서버의 부하테스트를 해볼 수 있는 라이브러리라고 한다.
☆알게된 것★
Artillery 로 서버 부하 테스트하기
아래 처럼 config에 어떤 환경에서 테스트를 할 지 적어준다.
target에는 테스트할 url을 적어주면 된다. 지금 배포되어 있는 서버주소로 테스트를 하면 갑자기 프로덕션 서버에 문제가 생길 수도 있기 때문에 로컬서버와 테스트용 DB로 테스트를 임의로 해주었다. 원래는 스태이징 서버나 스태이징 DB를 따로 구성한 후 테스트를 한다고 한다.
scenarios에는 테스트 시나리오를 작성해준다. 아래의 시나리오는 대표유저가 로그인을 한 후 유저를 조회하고 유저를 생성하는 과정이다. 아래처럼 테스트를 해준 후 duration와 arrivalRate를 좀 더 높여서 다시 테스트를 해주었다.
duration은 테스트가 진행되는 시간이고 arrivalRate는 초당 들어오는 요청 수 이다.
config:
target: http://localhost:3003
phases:
- duration: 30
arrivalRate: 10
defaults:
headers:
User-Agent: Artillery
scenarios:
- name: "대표로그인후 유저조회"
flow:
- post:
headers:
Content-Type: application/json
url: "/auth/admin"
json:
companyId: "testtest"
password: "aaaa1111!!"
capture:
json: "$.token"
as: "token"
- get:
url: "/users"
headers:
authorization: "{{token}}"
- post:
url: "/users"
headers:
authorization: "{{token}}"
json:
team : "개발팀"
authLevel : 3
rank : "사원"
userName : "{{ $randomString()}}"
userId : "{{ $randomString()}}"
joinDay : "2023-05-01"
salaryDay : 20
job : "BE"
- 테스트 결과 json으로 저장하기
npx artillery run 테스트코드파일명 -o userReport.json
- json 파일을 html로 저장하기
npx artillery report json파일명
'항해99 > TIL' 카테고리의 다른 글
20230518 TIL (0) | 2023.05.18 |
---|---|
20230509 TIL (0) | 2023.05.10 |
20230419 TIL (0) | 2023.04.20 |
20230418 TIL (1) | 2023.04.19 |
20230414 TIL (0) | 2023.04.15 |
Comments