주요 사용자 흐름을 기반으로 부하 테스트 정의
부하 테스트는 지속적인 유효성 검사의 중요한 부분입니다. 시작하려면 애플리케이션 흐름을 식별해야 합니다. 이 단원에서는 사용자 및 시스템 흐름에 대한 정보와, 이러한 흐름이 중요한 이유 및 테스트를 위한 설계 기준에 대해 알아봅니다.
애플리케이션 흐름이란?
흐름은 작업을 완료하는 데 필요한 애플리케이션 상호 작용으로 구성됩니다.
사용자 흐름
이러한 흐름은 사용자가 애플리케이션과 상호 작용하는 방법을 나타냅니다. Contoso Shoes 시나리오에서 상품 구매를 위한 체크 아웃 프로세스가 사용자 흐름의 예입니다. 인벤토리 관리에 참여하는 구성 요소는 다음과 같습니다.
- 프런트 엔드 웹 애플리케이션
- Azure Functions의 체크 아웃 논리
- Azure Cosmos DB의 백 엔드 데이터베이스
중요 업무용 관점에서 이러한 구성 요소는 가용성이 높고 오류에 대한 복원력이 있어야 합니다. 예를 들어 프런트 엔드 웹 페이지는 조직에 많은 수의 동시 사용자가 예상되기 때문에 신속하게 로드해야 합니다.
시스템 흐름
이러한 흐름은 일반적으로 사용자에게 직접 제공되지 않지만, 시스템 흐름 구성 요소의 중단이나 성능 저하로 인해 사용자 환경에 영향을 미칠 수 있습니다. 예를 들어, 시스템 흐름은 데이터베이스에서 주문을 수집하고 배송 레이블을 생성하는 비동기 작업이 될 수 있습니다.
참고 항목
대부분의 애플리케이션에는 여러 흐름이 있습니다. 각 흐름은 아키텍처의 다양한 구성 요소를 거칠 수 있습니다. 또한 구성 요소는 둘 이상의 흐름에 나타날 수 있습니다. 구성 요소가 실패할 때 영향을 받는 흐름을 이해하는 것이 중요합니다.
부하 테스트 및 해당 임계값 정의
부하 테스트는 실제 트래픽을 시뮬레이션하여 애플리케이션의 성능을 테스트합니다. 그러나 목표는 시스템을 중단시키기 위해 큰 로드를 생성하는 것이 아닙니다. 이러한 목표는 스트레스 테스트를 통해 달성할 수 있습니다.
부하 테스트는 사용자 흐름 구성 요소의 성능, 성능 제한, 리소스 사용률 및 최적의 스케일링 동작을 식별하는 데 도움이 될 수 있습니다. 부하 테스트는 모든 관련 사용자 흐름 및 시스템 흐름을 반영해야 합니다. 좋은 설계를 위해서는 애플리케이션에 대한 지식이 필요합니다. 다음과 같은 질문으로 시작하세요.
- 어떤 API 호출을 수행해야 하나요?
- API 호출 시퀀스는 어떻게 되나요?
- API 호출에 사용해야 하는 테스트 데이터는 무엇인가요?
답변에 따라 다음을 수행합니다.
주요 시나리오와 종속성을 파악하고 예상 사용량, 가용성, 성능 및 확장성에 대한 대상을 설정합니다.
측정 가능한 임계값 세트를 정의하여 주요 시나리오의 예상 성능을 정량화합니다. 예를 들어 애플리케이션 구성 요소의 경우 예상되는 사용자 로그인 수, API의 초당 요청 수 및 백그라운드 프로세스의 초당 작업 수에 대한 임계값을 고려할 수 있습니다.
임계값을 사용하여 애플리케이션 성능 테스트, 예상 스케일링 작업 및 관련 활동의 유효성을 검사하기 위한 실제 트래픽을 생성하는 부하 테스트를 정의합니다. 이러한 임계값을 사용하여 테스트 및 프로덕션을 모두 포함하는 애플리케이션에 대한 상태 모델을 개발합니다.
체크 아웃 프로세스 흐름 예에서는 각 단계의 평균 페이지 로드 기간에 대한 임계값을 500밀리초 미만으로 설정하고 최대 100명의 동시 사용자를 지원할 수 있습니다.
이제 모든 임계값이 정의되었으므로 부하 테스트를 구현할 수 있습니다. 이 모듈에서는 Azure Load Testing을 사용합니다.
Azure Portal을 통해 Azure Load Testing을 구성하고 배포할 수 있지만 프로그래밍 방식을 사용하는 것이 좋습니다. API를 사용하여 자동화된 방식으로 테스트를 배포, 구성 및 실행합니다. 이 접근 방법은 다음 단원에서 설명합니다.