기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
테스트 시나리오 생성
테스트 시나리오 생성에는 일반 설정 구성, 시나리오 정의, 트래픽 패턴 구성, 구성 검토의 네 가지 주요 단계가 포함됩니다.
1단계: 일반 설정
테스트 이름, 설명 및 일반 구성 옵션을 포함하여 로드 테스트의 기본 파라미터를 구성합니다.
테스트 식별
-
테스트 이름(필수) - 테스트 시나리오를 설명하는 이름입니다.
-
테스트 설명(필수) - 테스트 목적 및 구성에 대한 추가 세부 정보
-
태그(선택 사항) - 최대 5개의 태그를 추가하여 테스트 시나리오를 분류하고 구성합니다.
예약 옵션
테스트를 실행해야 하는 시기를 구성합니다.
-
지금 실행 - 생성 직후 테스트를 실행합니다.
-
한 번 실행 - 특정 날짜 및 시간에 실행되도록 테스트를 예약합니다.
-
일정에 따라 실행 - cron 기반 예약을 사용하여 정기적으로 테스트를 자동으로 실행합니다. 일반적인 패턴(매시간, 매일, 매주) 중에서 선택하거나 사용자 지정 cron 표현식을 정의할 수 있습니다.
워크플로 예약
테스트를 예약하면 다음 워크플로가 발생합니다.
-
일정 파라미터는 Amazon API Gateway로 전송됩니다.
-
API는 지정된 날짜에 실행되도록 예약된 CloudWatch Events 규칙을 생성하는 Lambda 함수에 파라미터를 전달합니다.
-
일회성 테스트(한 번 실행)의 경우 CloudWatch Events 규칙은 지정된 날짜에 실행되고
api-servicesLambda 함수는 테스트를 실행합니다. -
반복 테스트(일정에 따라 실행)의 경우 CloudWatch Events 규칙이 지정된 날짜에 활성화되고
api-servicesLambda 함수는 지정된 빈도에 따라 즉시 반복적으로 실행되는 새 규칙을 생성합니다.
라이브 데이터
테스트가 실행되는 동안 실시간 지표를 보려면 라이브 데이터 포함 확인란을 선택합니다. 활성화되면 다음을 모니터링할 수 있습니다.
-
평균 응답 시간입니다.
-
가상 사용자 수입니다.
-
성공적인 요청 수입니다.
-
실패한 요청 수입니다.
라이브 데이터 기능은 1초 간격으로 집계된 데이터를 사용하여 실시간 차트를 제공합니다. 자세한 내용은 라이브 데이터로 모니터링을 참조하세요.
2단계: 시나리오 구성
특정 테스트 시나리오를 정의하고 원하는 테스트 프레임워크를 선택합니다.
테스트 유형 선택
수행할 로드 테스트 유형을 선택합니다.
-
단일 HTTP 엔드포인트 - 간단한 구성으로 단일 API 엔드포인트 또는 웹 페이지를 테스트합니다.
-
JMeter - JMeter 테스트 스크립트(.jmx 파일 또는 .zip 아카이브)를 업로드합니다.
-
K6 - K6 테스트 스크립트(.js 파일 또는 .zip 아카이브)를 업로드합니다.
-
Locust - Locust 테스트 스크립트(.py 파일 또는 .zip 아카이브)를 업로드합니다.
HTTP 엔드포인트 구성 이미지::images/test-types.png[실행할 테스트 유형 선택] "단일 HTTP 엔드포인트"를 선택한 경우 다음 설정을 구성합니다.
- HTTP 엔드포인트(필수)
-
테스트하려는 엔드포인트의 전체 URL을 입력합니다. 예를 들어
https://api.example.com/users입니다. AWS 인프라에서 엔드포인트에 액세스할 수 있는지 확인합니다. - HTTP 메서드(필수)
-
요청에 대한 HTTP 메서드를 선택합니다. 기본값은
GET입니다. 기타 옵션에는POST,PUT,DELETE,PATCH, 및HEAD가 포함됩니다OPTIONS. - 요청 헤더(선택 사항)
-
요청에 사용자 지정 HTTP 헤더를 추가합니다. 일반적인 예는 다음과 같습니다.
-
Content-Type: application/json -
Authorization: Bearer <token> -
User-Agent: LoadTest/1.0헤더 추가를 선택하여 여러 헤더를 포함합니다.
-
- 본문 페이로드(선택 사항)
-
POST 또는 PUT 요청에 대한 요청 본문 콘텐츠를 추가합니다. JSON, XML 또는 일반 텍스트 형식을 지원합니다. 예를 들어
{"userId": 123, "action": "test"}입니다.
프레임워크 스크립트 테스트
JMeter, K6 또는 Locust를 사용하는 경우 테스트 스크립트 파일 또는 테스트 스크립트와 지원 파일이 포함된.zip 아카이브를 업로드합니다. JMeter의 경우 .zip 아카이브 내의 /plugins 폴더에 사용자 지정 플러그인을 포함할 수 있습니다.
중요
테스트 스크립트(JMeter, K6 또는 Locust)가 동시성(가상 사용자), 트랜잭션 속도(TPS), 증가 시간 및 기타 로드 파라미터를 정의할 수 있지만 솔루션은 테스트 생성 중에 트래픽 셰이프 화면에서 지정한 값으로 이러한 구성을 재정의합니다. 트래픽 셰이프 구성은 테스트 실행의 작업 수, 동시성(작업당 가상 사용자 수), 증가 기간 및 대기 기간을 제어합니다.
3단계: 트래픽 셰이프
다중 리전 지원을 포함하여 테스트 중에 트래픽이 분산되는 방식을 구성합니다.
다중 리전 트래픽 구성
로드 테스트를 지리적으로 배포할 AWS 리전을 하나 이상 선택합니다. 선택한 각 리전에 대해 다음을 구성합니다.
- 작업 수
-
테스트 시나리오를 위해 Fargate 클러스터에서 시작될 컨테이너(작업) 수입니다. 계정이 "Fargate 리소스에 도달" 한도에 도달하면 추가 작업이 생성되지 않습니다.
- 동시성
-
작업당 생성된 동시 가상 사용자 수입니다. 권장 제한은 작업당 vCPUs 2개의 기본 설정을 기반으로 합니다. 동시성은 CPU 및 메모리 리소스에 의해 제한됩니다.
사용자 수 결정
컨테이너가 테스트에 지원할 수 있는 사용자 수는 Amazon CloudWatch에서 사용자 수를 점진적으로 늘리고 성능을 모니터링하여 확인할 수 있습니다. CPU 및 메모리 성능이 제한에 도달하는 것을 관찰하면 컨테이너가 기본 구성(vCPU 2개 및 메모리 4GB)에서 해당 테스트에 지원할 수 있는 최대 사용자 수에 도달한 것입니다.
보정 프로세스
다음 예제를 사용하여 테스트에 대한 동시 사용자 제한을 확인할 수 있습니다.
-
사용자가 200명 이하인 테스트를 생성합니다.
-
테스트가 실행되는 동안 CloudWatch 콘솔
을 사용하여 CPU와 메모리를 모니터링합니다. -
왼쪽 탐색 창의 Container Insights에서 성능 모니터링을 선택합니다.
-
성능 모니터링 페이지의 왼쪽 드롭다운 메뉴에서 ECS 클러스터를 선택합니다.
-
오른쪽 드롭다운 메뉴에서 Amazon Elastic Container Service(Amazon ECS) 클러스터를 선택합니다.
-
-
모니터링하는 동안 CPU와 메모리를 관찰합니다. CPU가 75%를 초과하지 않거나 메모리가 85%를 초과하지 않는 경우(일회성 피크 무시) 사용자 수가 많은 다른 테스트를 실행할 수 있습니다.
테스트가 리소스 제한을 초과하지 않은 경우 1~3단계를 반복합니다. 선택적으로 컨테이너 리소스를 늘려 동시 사용자 수를 늘릴 수 있습니다. 그러나 이로 인해 비용이 더 많이 듭니다. 자세한 내용은 개발자 안내서를 참조하세요.
참고
정확한 결과를 얻으려면 동시 사용자 제한을 결정할 때 한 번에 하나의 테스트만 실행합니다. 모든 테스트는 동일한 클러스터를 사용하며 CloudWatch 컨테이너 인사이트는 클러스터를 기반으로 성능 데이터를 집계합니다. 이로 인해 두 테스트가 CloudWatch Container Insights에 동시에 보고되어 단일 테스트에 대한 리소스 사용률 지표가 부정확해집니다.
엔진당 사용자 보정에 대한 자세한 내용은 BlazeMeter 설명서의 타우루스 테스트 보정
참고
솔루션은 각 리전에 사용 가능한 용량 정보를 표시하므로 사용 가능한 한도 내에서 테스트 구성을 계획하는 데 도움이 됩니다.
사용 가능한 작업 테이블
사용 가능한 작업 테이블에는 선택한 각 리전의 리소스 가용성이 표시됩니다.
-
리전 - AWS 리전 이름입니다.
-
작업당 vCPUs - 각 작업에 할당된 가상 CPUs 수(기본값: 2).
-
DLT 작업 제한 - 계정의 Fargate 제한(기본값: 2000)에 따라 생성할 수 있는 최대 작업 수입니다.
-
사용 가능한 DLT 작업 - 리전에서 사용할 수 있는 현재 작업 수입니다(기본값: 2000).
작업당 사용 가능한 작업 또는 vCPUs 수를 늘리려면 개발자 안내서를 참조하세요.
테스트 기간
로드 테스트가 실행되는 기간을 정의합니다.
- 램프 업
-
대상 동시성에 도달하는 시간입니다. 이 기간 동안 로드가 0에서 구성된 동시성 수준으로 점진적으로 증가합니다.
- 에 대해 보류
-
대상 로드를 유지하는 기간입니다. 테스트는이 기간 동안 완전한 동시성으로 계속됩니다.
4단계: 검토 및 생성
테스트 시나리오를 생성하기 전에 모든 구성을 검토합니다. 다음을 확인합니다.
-
일반 설정(이름, 설명, 일정).
-
시나리오 구성(테스트 유형, 엔드포인트 또는 스크립트).
-
트래픽 셰이프(작업, 사용자, 기간, 리전).
검토 후 생성을 선택하여 테스트 시나리오를 저장합니다.
테스트 시나리오 관리
테스트 시나리오를 생성한 후 다음을 수행할 수 있습니다.
-
편집 - 테스트 구성을 수정합니다. 일반적인 사용 사례는 다음과 같습니다.
-
원하는 트랜잭션 속도를 달성하기 위해 트래픽 셰이프를 구체화합니다.
-
-
복사 - 기존 테스트 시나리오를 복제하여 변형을 생성합니다. 일반적인 사용 사례는 다음과 같습니다.
-
엔드포인트 업데이트 또는 헤더/본문 파라미터 추가.
-
테스트 스크립트 추가 또는 수정.
-
-
삭제 - 더 이상 필요하지 않은 테스트 시나리오를 제거합니다.