

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 테스트 시나리오 실행
<a name="run-test-scenario"></a>

테스트 시나리오를 생성한 후 즉시 실행하거나 향후 특정 시간에 실행되도록 예약할 수 있습니다. 실행 중인 테스트로 이동하면 콘솔에 실시간 작업 상태 및 지표와 함께 시나리오 세부 정보 탭이 표시됩니다.

![\[작업 상태 및 실시간 지표를 보여주는 테스트 시나리오 실행\]](http://docs.aws.amazon.com/ko_kr/solutions/latest/distributed-load-testing-on-aws/images/running-test-overview.png)


## 시나리오 세부 정보 보기
<a name="scenario-details-view"></a>

시나리오 세부 정보 탭에는 테스트에 대한 주요 정보가 표시됩니다. 모든 리전에 대한 작업 상태 테이블 실시간 정보입니다.

 **작업 상태 테이블** 

작업 상태 테이블에는 각 리전에 대한 실시간 정보가 표시됩니다.
+  **리전** - 작업이 실행 중인 AWS 리전
+  **작업 수** - 리전에 대해 구성된 총 작업 수
+  **동시성** - 작업당 가상 사용자 수
+  **실행** 중 - 현재 테스트를 실행 중인 작업 수
+  **보류** 중 - 시작 대기 중인 작업 수
+  **프로비저닝** - 프로비저닝되는 작업 수

## 테스트 실행 워크플로
<a name="test-execution-workflow"></a>

테스트가 시작되면 다음 워크플로가 발생합니다.

1.  **작업 프로비저닝** - 솔루션은 지정된 AWS 리전에 컨테이너(작업)를 프로비저닝합니다. 작업은 "프로비저닝" 열에 표시됩니다.

1.  **작업 시작** - 솔루션은 각 리전에서 대상 작업 수에 도달할 때까지 작업을 계속 프로비저닝합니다. 작업은 "프로비저닝"에서 "보류 중"에서 "실행"으로 이동합니다.

1.  **트래픽 생성** - 솔루션이 리전의 모든 작업을 프로비저닝한 후 대상 엔드포인트로 트래픽을 전송하기 시작합니다.

1.  **테스트 실행** - 구성된 기간(램프업 \$1 대기 시간) 동안 테스트가 실행됩니다.

1.  **결과 구문 분석 **- 테스트가 종료되면 백그라운드 구문 분석 작업은 모든 리전의 결과를 집계하고 처리합니다.

## 테스트 실행 상태
<a name="test-statuses"></a>

테스트 실행의 상태는 다음과 같습니다.
+  **예약**됨 - 향후 테스트가 실행되도록 예약됩니다.
+  **실행** 중 - 테스트가 현재 진행 중입니다.
+  **취소됨** - 사용자가 진행 중인 테스트 실행을 취소했습니다.
+  **오류 **- 테스트 실행에 오류가 발생했습니다.
+  **완료** - 테스트 실행이 성공적으로 완료되었으며 결과가 준비되었습니다.

## 라이브 데이터로 모니터링
<a name="monitoring-live-data"></a>

테스트 시나리오를 생성할 때 라이브 데이터를 활성화한 경우 테스트가 실행되는 동안 실시간 지표를 볼 수 있습니다. 실시간 지표 섹션에는 테스트가 진행됨에 따라 지속적으로 업데이트되는 그래프 4개가 표시되며 데이터는 1초 간격으로 집계됩니다.

![\[실시간 테스트 성능 데이터를 보여주는 실시간 지표 그래프\]](http://docs.aws.amazon.com/ko_kr/solutions/latest/distributed-load-testing-on-aws/images/real-time-metrics.png)


 **그래프 설명** 

 **평균 응답 시간**   
각 리전에서 처리된 요청에 대한 평균 응답 시간을 초 단위로 표시합니다. Y축은 응답 시간을 초 단위로 표시하고 X축은 시간을 표시합니다. 각 리전은 범례에서 다른 색상으로 표시됩니다.

 **가상 사용자**   
각 리전에서 로드를 적극적으로 생성하는 동시 가상 사용자 수를 표시합니다. 그래프에는 가상 사용자가 테스트 중에 어떻게 증가하며 대상 동시성 수준을 유지하는지 표시됩니다.

 **성공적인 요청**   
각 리전에 대해 시간 경과에 따른 성공한 요청의 누적 수를 표시합니다. 그래프는 성공적인 요청이 처리되는 속도를 보여줍니다.

 **실패한 요청**   
각 리전에 대해 시간 경과에 따른 실패한 요청의 누적 수를 표시합니다. 개수가 낮거나 0이면 정상 테스트 실행을 나타냅니다.

 **다중 리전 시각화** 

여러 리전에서 테스트를 실행할 때 각 그래프는 모든 리전에 대한 데이터를 동시에 표시합니다. 각 그래프 하단의 범례는 각 리전을 나타내는 색상을 식별합니다(예: us-west-2 및 us-east-1).

 **기술 구현** 

Fargate 태스크의 CloudWatch 로그 그룹에는 테스트 결과를 캡처하는 구독 필터가 포함되어 있습니다. 패턴이 감지되면 Lambda 함수가 데이터를 구조화하여 AWS IoT Core 주제에 게시합니다. 웹 콘솔은이 주제를 구독하고 지표를 실시간으로 표시합니다.

**참고**  
라이브 데이터는 임시 데이터이며 테스트가 실행되는 동안에만 사용할 수 있습니다. 웹 콘솔은 최대 5,000개의 데이터 포인트를 유지하며, 그 이후에는 가장 오래된 데이터가 최신 데이터로 대체됩니다. 페이지가 새로 고쳐지면 그래프가 비어 있고 사용 가능한 다음 데이터 포인트에서 시작됩니다. 테스트가 완료되면 솔루션은 결과 데이터를 DynamoDB 및 Amazon S3에 저장합니다. 아직 사용할 수 있는 데이터가 없는 경우 그래프에 “사용 가능한 데이터가 없습니다.”가 표시됩니다.

## 테스트 취소
<a name="cancelling-tests"></a>

웹 콘솔에서 실행 중인 테스트를 취소할 수 있습니다. 테스트를 취소하면 다음 워크플로가 발생합니다.

1. 취소 요청이 `microservices` API로 전송됩니다.

1. `microservices` API는 현재 시작된 모든 작업을 중지하는 `task-canceler` Lambda 함수를 호출합니다.

1. 초기 취소 호출 후에도 `task-runner` Lambda 함수가 계속 실행되는 경우 작업이 잠시 계속 시작될 수 있습니다.

1. `task-runner` Lambda 함수가 완료되면 AWS Step Functions는 `Cancel Test` 단계로 진행하여 `task-canceler` Lambda 함수를 다시 실행하여 나머지 작업을 중지합니다.

**참고**  
취소된 테스트는 솔루션이 모든 컨테이너를 종료하므로 종료 프로세스를 완료하는 데 시간이 걸립니다. 모든 리소스가 정리되면 테스트 상태가 “취소됨”으로 변경됩니다.