이번 블로그에서는 Artillery를 이용한 성능 테스트 결과를 JSON 파일로 저장하고, 이를 HTML로 변환하여 시각화하는 방법을 다룹니다.
1. 테스트 결과를 JSON 파일로 저장
Artillery 실행 시 --output 옵션을 사용하여 결과를 JSON 파일로 저장할 수 있습니다. 아래 명령어는 advanced-load-test.yml 설정 파일로 테스트를 실행하고, 결과를 result.json 파일에 저장합니다:
artillery run --output result.json advanced-load-test.yml
result.json 파일은 테스트 결과의 원시 데이터를 담고 있으며, 이 데이터를 활용해 다양한 방식으로 분석하거나 시각화할 수 있습니다.
2. JSON 결과를 HTML로 변환
Artillery는 JSON 결과를 HTML 파일로 변환해 주는 report 명령어를 제공합니다. 이를 사용하면 시각화된 결과를 쉽게 확인할 수 있습니다:
artillery report result.json --output result.html
위 명령어를 실행하면 result.html 파일이 생성됩니다. 이 HTML 파일에는 테스트의 주요 지표(요청 성공률, 응답 시간 통계, 처리량 등)가 포함된 시각화된 결과가 담깁니다.
3. HTML 결과 확인
생성된 result.html 파일을 브라우저에서 열면 테스트 결과를 시각적으로 확인할 수 있습니다. 예를 들어:
open result.html
결과 화면에서는 다음과 같은 정보를 확인할 수 있습니다:
- 요청 성공률 및 실패율
- 응답 시간 분포 (평균, 95th 퍼센타일 등)
- 초당 처리량 (RPS)
4. HTML 결과지 주요 지표 설명
Artillery의 HTML 결과 페이지에는 성능 테스트의 다양한 메트릭이 시각화되어 있습니다. 아래는 주요 지표와 그 의미를 간략히 정리한 내용입니다:
1. Overall Latency Distribution
- 요청의 응답 시간 분포를 보여주는 섹션입니다. 주요 지표는 다음과 같습니다:이 값들을 통해 시스템의 응답 속도가 어떤 수준으로 유지되고 있는지 파악할 수 있습니다.
- max: 테스트 중 측정된 가장 긴 응답 시간 (최대값).
- p95 (95th Percentile): 요청 중 상위 95%가 이 시간보다 빠르게 응답. 즉, 상위 5%의 느린 요청을 제외한 최대 응답 시간.
- p99 (99th Percentile): 요청 중 상위 99%가 이 시간보다 빠르게 응답. 가장 느린 1% 요청을 제외한 응답 시간을 의미합니다.
2. Summary
- Test duration: 테스트가 실행된 총 시간 (초 단위).
- 예: 130 sec는 테스트가 130초 동안 실행되었음을 의미합니다.
- Scenarios created: 테스트 동안 생성된 사용자 시나리오 수.
- 예: 1320은 총 1320개의 사용자 시나리오가 생성되었음을 나타냅니다.
- Scenarios completed: 시나리오가 정상적으로 완료된 횟수.
- 예: 1320은 생성된 1320개의 시나리오가 모두 성공적으로 완료되었음을 의미합니다. 실패한 시나리오가 있다면 이 수는 작아질 것입니다.
3. Other Key Metrics
- Requests Per Second (RPS): 초당 처리된 요청 수. 서버의 처리량을 측정합니다.
- Failures: 실패한 요청 수. 서버에서 오류가 발생했거나 시간 초과된 요청을 포함합니다.
- Response Time (ms):
- 요청에 대한 서버의 응답 속도를 밀리초(ms) 단위로 표시.
- 평균, 최소, 최대 응답 시간과 다양한 퍼센타일 값(예: p95, p99)을 제공합니다.
예시 설명
HTML 결과지에서 아래와 같은 정보가 나왔다면:
- Test duration: 130초 동안 테스트가 진행됨.
- Scenarios created: 1320개의 시나리오가 생성됨.
- Scenarios completed: 모든 시나리오가 정상적으로 완료됨.
- Overall Latency Distribution:
- max: 900ms → 가장 느린 응답 시간은 900ms.
- p95: 150ms → 95%의 요청이 150ms 이내에 응답.
- p99: 300ms → 99%의 요청이 300ms 이내에 응답.
'성능테스트 > Artillery' 카테고리의 다른 글
Artillery 이용한 다양한 테스트 방법 (0) | 2024.12.13 |
---|---|
성능 테스트와 Artillery 기본 개념 (0) | 2024.12.08 |