주요 사용자 흐름을 기반으로 부하 테스트 정의

완료됨

부하 테스트는 지속적인 유효성 검사의 중요한 부분입니다. 시작하려면 애플리케이션 흐름을 식별해야 합니다. 이 단원에서는 사용자 및 시스템 흐름에 대한 정보와, 이러한 흐름이 중요한 이유 및 테스트를 위한 설계 기준에 대해 알아봅니다.

애플리케이션 흐름이란?

흐름은 작업을 완료하는 데 필요한 애플리케이션 상호 작용으로 구성됩니다.

  • 사용자 흐름

    이러한 흐름은 사용자가 애플리케이션과 상호 작용하는 방법을 나타냅니다. Contoso Shoes 시나리오에서 상품 구매를 위한 체크 아웃 프로세스가 사용자 흐름의 예입니다. 인벤토리 관리에 참여하는 구성 요소는 다음과 같습니다.

    • 프런트 엔드 웹 애플리케이션
    • Azure Functions의 체크 아웃 논리
    • Azure Cosmos DB의 백 엔드 데이터베이스

    중요 업무용 관점에서 이러한 구성 요소는 가용성이 높고 오류에 대한 복원력이 있어야 합니다. 예를 들어 프런트 엔드 웹 페이지는 조직에 많은 수의 동시 사용자가 예상되기 때문에 신속하게 로드해야 합니다.

  • 시스템 흐름

    이러한 흐름은 일반적으로 사용자에게 직접 제공되지 않지만, 시스템 흐름 구성 요소의 중단이나 성능 저하로 인해 사용자 환경에 영향을 미칠 수 있습니다. 예를 들어, 시스템 흐름은 데이터베이스에서 주문을 수집하고 배송 레이블을 생성하는 비동기 작업이 될 수 있습니다.

참고 항목

대부분의 애플리케이션에는 여러 흐름이 있습니다. 각 흐름은 아키텍처의 다양한 구성 요소를 거칠 수 있습니다. 또한 구성 요소는 둘 이상의 흐름에 나타날 수 있습니다. 구성 요소가 실패할 때 영향을 받는 흐름을 이해하는 것이 중요합니다.

부하 테스트 및 해당 임계값 정의

부하 테스트는 실제 트래픽을 시뮬레이션하여 애플리케이션의 성능을 테스트합니다. 그러나 목표는 시스템을 중단시키기 위해 큰 로드를 생성하는 것이 아닙니다. 이러한 목표는 스트레스 테스트를 통해 달성할 수 있습니다.

부하 테스트는 사용자 흐름 구성 요소의 성능, 성능 제한, 리소스 사용률 및 최적의 스케일링 동작을 식별하는 데 도움이 될 수 있습니다. 부하 테스트는 모든 관련 사용자 흐름 및 시스템 흐름을 반영해야 합니다. 좋은 설계를 위해서는 애플리케이션에 대한 지식이 필요합니다. 다음과 같은 질문으로 시작하세요.

  • 어떤 API 호출을 수행해야 하나요?
  • API 호출 시퀀스는 어떻게 되나요?
  • API 호출에 사용해야 하는 테스트 데이터는 무엇인가요?

답변에 따라 다음을 수행합니다.

  1. 주요 시나리오와 종속성을 파악하고 예상 사용량, 가용성, 성능 및 확장성에 대한 대상을 설정합니다.

  2. 측정 가능한 임계값 세트를 정의하여 주요 시나리오의 예상 성능을 정량화합니다. 예를 들어 애플리케이션 구성 요소의 경우 예상되는 사용자 로그인 수, API의 초당 요청 수 및 백그라운드 프로세스의 초당 작업 수에 대한 임계값을 고려할 수 있습니다.

  3. 임계값을 사용하여 애플리케이션 성능 테스트, 예상 스케일링 작업 및 관련 활동의 유효성을 검사하기 위한 실제 트래픽을 생성하는 부하 테스트를 정의합니다. 이러한 임계값을 사용하여 테스트 및 프로덕션을 모두 포함하는 애플리케이션에 대한 상태 모델을 개발합니다.

    체크 아웃 프로세스 흐름 예에서는 각 단계의 평균 페이지 로드 기간에 대한 임계값을 500밀리초 미만으로 설정하고 최대 100명의 동시 사용자를 지원할 수 있습니다.

이제 모든 임계값이 정의되었으므로 부하 테스트를 구현할 수 있습니다. 이 모듈에서는 Azure Load Testing을 사용합니다.

Azure Portal을 통해 Azure Load Testing을 구성하고 배포할 수 있지만 프로그래밍 방식을 사용하는 것이 좋습니다. API를 사용하여 자동화된 방식으로 테스트를 배포, 구성 및 실행합니다. 이 접근 방법은 다음 단원에서 설명합니다.

지식 점검

1.

모든 사용자 및 시스템 흐름이 똑같이 중요합니까?

2.

구성 요소의 중단으로 인해 항상 서비스 성능이 저하됩니까?

3.

부하 테스트는 사용자 흐름의 예상 성능을 평가하는 데 도움이 될 수 있습니까?