1. 부하 테스트 계획의 기본 사항
부하 테스트를 시작하기 전에 부하 테스트 계획을 세워야 한 다. 부하 테스트 계획에는 다음과 같은 내용을 결정해야 한다:
- 일정
- 부하 테스트 목적
- 전체 조건 정리
- 목표값
- 사용할 부하 테스트 도구
- 부하 테스트 환경
- 부하 테스트 시나리오
1.1 일정 결정
부하 테스트는 일정을 여유롭게 잡아야 한다. 일반적인 개발 프로젝트에서 부하 테스트에 투입되는 인력과 기간을 잠정하는 어렵다.
- 예상하기 어려운 가장 큰 이유는 PDCA 사이클에서 Action 항목의 '시스템 개선' 때문
- 시스템 개선이라고 해도 시스템 설정을 변경하는 간단한 개선에서 코드까지 바꿔야 하는 경우도 있음
- 또한, 문제 작업의 원인을 찾을 수 있는 경우도 있지만, 그대나 인력과 시간이 필요하다는 관점에서 신중하기가 어렵다
1.2 테스트할 수 없는 시스템이나 복잡한 시스템에서의 전략
테스트를 해볼 수 없는 시스템이나 복잡한 시스템일수록 신중을 기울여 어려울 것이다. 그러나 부하 테스트는 중요한 작업 중 하나이므로 정확한 값을 확인하는 것이 가장 중요하다.
2. 부하 테스트 목적 설정
확장성을 가진 시스템을 만들려면 기본적으로 부하 테스트 목적은 3장에서 설명한 것과 같이 다음과 같은 내용이 필요하다:
- 여러 시래플 토대로 각 시스템의 응답 성능을 예측한다
- 부하가 많이 발생하면 성능 개선을 한다
- 원하는 성능을 만드는 데 필요한 하드웨어를 미리 설정한다
- 시스템 확장성을 가늠하여 확인한다
- 시스템 확장성에 대한 특성을 파악한다
3. 전체 조건 정리
테스트하기 위한 전체 조건을 정리한다. 어떤 점이 예상한다고 어떤 값이 확정된 값인지 등을 명확하게 해야 한다.
3.1 테스트 대상 시스템 범위
- 품질을 보증하는 범위를 명확하게 정의한다
- 데이터 양
- 부하 테스트 때 스크립트에 저장될 데이터 건수와 크기를 결정한다
- 서비스 이용자 수, 예상 사용자 행동, 사용 기간 등을 종합해 계산한다
- 외부 시스템 Latency, 사용량 시스템 제약
- 사용량 외부 시스템이라면 그 시스템의 Throughput과 Latency를 파악한다
- 최대 가능 동시 접속 수와 시간당 호출 제한 등의 제약이 있을 수 있다
- 외부 시스템과 동일이 어려운 경우 어떻게 처리할 것인지 검토한다
3.2 지속적인 성능 유지 기간
- 'X 시간 이상 지속해서 성능을 유지할 것' 등과 같은 기간을 결정한다
- 최종적으로 목표값에 대해 기간 성능을 유지할 필요가 있다
4. 부하를 주는 방법
4.1 네트워크 관련
- 어떤 네트워크에 부하를 줄 것인지
- HTTPS를 사용할지