분산 로드 테스트 API - AWS의 분산 로드 테스트

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

분산 로드 테스트 API

이 로드 테스트 솔루션은 테스트 결과 데이터를 안전한 방식으로 노출하는 데 도움이 됩니다. API는 Amazon DynamoDB에 저장된 테스트 데이터에 액세스하기 위한 "정문" 역할을 합니다. APIs를 사용하여 솔루션에 빌드하는 모든 확장 기능에 액세스할 수도 있습니다.

이 솔루션은 식별 및 권한 부여를 위해 Amazon API Gateway와 통합된 Amazon Amazon Cognito 사용자 풀을 사용합니다. 사용자 풀을 API와 함께 사용하는 경우 클라이언트는 유효한 자격 증명 토큰을 제공한 후에만 사용자 풀 활성화 메서드를 호출할 수 있습니다.

API를 통해 직접 테스트를 실행하는 방법에 대한 자세한 내용은 Amazon API Gateway REST API 참조 설명서의 서명 요청을 참조하세요.

솔루션의 API에서 다음 작업을 사용할 수 있습니다.

참고

testScenario 및 기타 파라미터에 대한 자세한 내용은 GitHub 리포지토리의 시나리오페이로드 예제를 참조하세요.

스택 정보

시나리오

테스트 실행

기준

업무

리전

GET/stack-info

설명

GET /stack-info 작업은 생성 시간, 리전 및 버전을 포함하여 배포된 스택에 대한 정보를 검색합니다. 이 엔드포인트는 프런트 엔드에서 사용됩니다.

응답

200 - 성공

명칭 설명

created_time

스택 생성 시 ISO 8601 타임스탬프(예: 2025-09-09T19:40:22Z)

region

스택이 배포되는 AWS 리전(예: us-east-1)

version

배포된 솔루션의 버전(예: v4.0.0)

오류 응답

  • 403 - 금지됨: 스택 정보에 액세스할 수 있는 권한이 부족함

  • 404 - 찾을 수 없음: 스택 정보를 사용할 수 없음

  • 500 - 내부 서버 오류

GET/시나리오

설명

GET /scenarios 작업을 통해 테스트 시나리오 목록을 검색할 수 있습니다.

응답

명칭 설명

data

각 테스트의 ID, 이름, 설명, 상태, 실행 시간, 태그, 총 실행 및 마지막 실행을 포함한 시나리오 목록

POST/시나리오

설명

POST /scenarios 작업을 통해 테스트 시나리오를 생성하거나 예약할 수 있습니다.

요청 본문

명칭 설명

testName

테스트의 이름입니다.

testDescription

테스트에 대한 설명

testTaskConfigs

시나리오에 region 대해 concurrency (병렬 실행 수), taskCount (테스트를 실행하는 데 필요한 작업 수) 및를 지정하는 객체입니다.

testScenario

동시성, 테스트 시간, 호스트 및 테스트 방법을 포함한 테스트 정의

testType

테스트 유형(예: , simplejmeter)

fileType

업로드 파일 유형(예: , nonescript, zip)

tags

테스트를 분류하기 위한 문자열 배열입니다. 최대 길이가 5인 선택적 필드(예: ["blue", "3.0", "critical"])

scheduleDate

테스트를 실행할 날짜입니다. 테스트를 예약하는 경우에만 제공됩니다(예: 2021-02-28).

scheduleTime

테스트를 실행하는 시간입니다. 테스트를 예약하는 경우에만 제공됩니다(예: 21:07).

scheduleStep

일정 프로세스의 단계입니다. 반복 테스트를 예약하는 경우에만 제공됩니다. (사용 가능한 단계에는 create 및가 포함됩니다start.)

cronvalue

반복 예약 사용자 지정을 위한 cron 값입니다. 사용되는 경우 scheduleDate 및 scheduleTime을 생략합니다.

cronExpiryDate

cron이 만료되고 무기한 실행되지 않는 데 필요한 날짜입니다.

recurrence

예약된 테스트의 반복입니다. 반복 테스트를 예약하는 경우에만 제공됩니다(예: , dailyweeklybiweekly, 또는 monthly).

응답

명칭 설명

testId

테스트의 고유 ID

testName

테스트의 이름입니다.

status

테스트 상태

옵션/시나리오

설명

OPTIONS /scenarios 작업은 요청에 대한 응답을 올바른 CORS 응답 헤더와 함께 제공합니다.

응답

명칭 설명

testId

테스트의 고유 ID

testName

테스트의 이름입니다.

status

테스트 상태

GET /시나리오/{testId}

설명

GET /scenarios/{testId} 작업을 통해 특정 테스트 시나리오의 세부 정보를 검색할 수 있습니다.

요청 파라미터

testId
  • 테스트의 고유 ID

    유형: 문자열

    필수 항목 여부: 예

latest
  • 파라미터를 쿼리하여 최신 테스트 실행만 반환합니다. 기본값은 입니다. true

    유형: 부울

    필수 항목 여부: 아니요

history
  • 응답에 테스트 실행 기록을 포함하는 쿼리 파라미터입니다. 기본값은 true입니다. 기록을 제외false하려면 로 설정

    유형: 부울

    필수 항목 여부: 아니요

응답

명칭 설명

testId

테스트의 고유 ID

testName

테스트의 이름입니다.

testDescription

테스트에 대한 설명

testType

실행 중인 테스트 유형(예: , simplejmeter)

fileType

업로드되는 파일 유형(예: , nonescript, zip)

tags

테스트를 분류하기 위한 문자열 배열

status

테스트 상태

startTime

마지막 테스트가 시작된 시간 및 날짜

endTime

마지막 테스트가 종료된 시간 및 날짜

testScenario

동시성, 테스트 시간, 호스트 및 테스트 방법을 포함한 테스트 정의

taskCount

테스트를 실행하는 데 필요한 작업 수

taskIds

테스트 실행을 위한 작업 IDs 목록

results

테스트의 최종 결과

history

과거 테스트의 최종 결과 목록(일 때 제외됨history=false)

totalRuns

이 시나리오에 대한 총 테스트 실행 수

lastRun

마지막 테스트 실행의 타임스탬프

errorReason

오류가 발생할 때 생성되는 오류 메시지

nextRun

예약된 다음 실행(예: 2017-04-22 17:18:00)

scheduleRecurrence

테스트의 반복(예: , dailyweekly, biweekly, monthly)

POST/시나리오/{testId}

설명

POST /scenarios/{testId} 작업을 통해 특정 테스트 시나리오를 취소할 수 있습니다.

요청 파라미터

testId
  • 테스트의 고유 ID

    유형: 문자열

    필수 항목 여부: 예

응답

명칭 설명

status

테스트 상태

DELETE/시나리오/{testId}

설명

DELETE /scenarios/{testId} 작업을 통해 특정 테스트 시나리오와 관련된 모든 데이터를 삭제할 수 있습니다.

요청 파라미터

testId
  • 테스트의 고유 ID

    유형: 문자열

    필수 항목 여부: 예

응답

명칭 설명

status

테스트 상태

옵션/시나리오/{testId}

설명

OPTIONS /scenarios/{testId} 작업은 요청에 대한 응답을 올바른 CORS 응답 헤더와 함께 제공합니다.

응답

명칭 설명

testId

테스트의 고유 ID

testName

테스트의 이름입니다.

testDescription

테스트에 대한 설명

testType

실행 중인 테스트 유형(예: , simplejmeter)

fileType

업로드되는 파일 유형(예: , nonescript, zip)

status

테스트 상태

startTime

마지막 테스트가 시작된 시간 및 날짜

endTime

마지막 테스트가 종료된 시간 및 날짜

testScenario

동시성, 테스트 시간, 호스트 및 테스트 방법을 포함한 테스트 정의

taskCount

테스트를 실행하는 데 필요한 작업 수

taskIds

테스트 실행을 위한 작업 IDs 목록

results

테스트의 최종 결과

history

과거 테스트의 최종 결과 목록

errorReason

오류가 발생할 때 생성되는 오류 메시지

GET /scenarios/{testId}/testruns

설명

GET /scenarios/{testId}/testruns 작업은 선택적으로 시간 범위별로 필터링된 특정 테스트 시나리오의 테스트 실행 IDs를 검색합니다. latest=true인 경우는 가장 최근의 단일 테스트 실행만 반환합니다.

요청 파라미터

testId
  • 테스트 시나리오 ID

    유형: 문자열

    필수 항목 여부: 예

latest
  • 최신 테스트 실행 ID만 반환

    유형: 부울

    기본값: false

    필수 여부: 아니요

start_timestamp
  • (포함)에서 테스트 실행을 필터링하기 위한 ISO 8601 타임스탬프입니다. 예: 2024-01-01T00:00:00Z

    유형: 문자열(날짜-시간 형식)

    필수 여부: 아니요

end_timestamp
  • (포함)까지 테스트 실행을 필터링하는 ISO 8601 타임스탬프입니다. 예: 2024-12-31T23:59:59Z

    유형: 문자열(날짜-시간 형식)

    필수 여부: 아니요

limit
  • 반환할 최대 테스트 실행 수(일 때 무시됨latest=true)

    유형: 정수(최소: 1, 최대: 100)

    기본값: 20

    필수 여부: 아니요

next_token
  • 다음 페이지를 가져오기 위한 이전 응답의 페이지 매김 토큰

    유형: 문자열

    필수 항목 여부: 아니요

응답

200 - 성공

명칭 설명

testRuns

각각 testRunId (문자열) 및 startTime (ISO 8601 날짜-시간)을 포함하는 테스트 실행 객체 배열

pagination

limit (정수) 및 next_token (문자열 또는 null)이 포함된 객체입니다. 더 이상 결과가 없는 경우 토큰은 null입니다.

오류 응답

  • 400 - 잘못된 타임스탬프 형식 또는 파라미터

  • 404 - 테스트 시나리오를 찾을 수 없음

  • 500 - 내부 서버 오류

사용 예

  • 최신 테스트 실행만 해당: GET /scenarios/test123/testruns?latest=true

  • 시간 범위 내 최신: GET /scenarios/test123/testruns?latest=true&start_timestamp=2024-01-01T00:00:00Z

  • 다음 페이지 요청: GET /scenarios/test123/testruns?limit=20&next_token=eyJ0ZXN0SWQiOiJzZVFVeTEyTEtMIiwic3RhcnRUaW1lIjoiMjAyNC0wMS0xM1QxNjo0NTowMFoifQ==

GET /scenarios/{testId}/testruns/{testRunId}

설명

GET /scenarios/{testId}/testruns/{testRunId} 작업은 특정 테스트 실행에 대한 전체 결과 및 지표를 검색합니다. 선택적으로 더 빠른 응답을 history=false 위해를 사용하여 기록 결과를 생략합니다.

요청 파라미터

testId
  • 테스트 시나리오 ID

    유형: 문자열

    필수 항목 여부: 예

testRunId
  • 특정 테스트 실행 ID

    유형: 문자열

    필수 항목 여부: 예

history
  • 응답에 기록 배열을 포함합니다. 더 빠른 응답을 false 위해 기록을 생략하려면 로 설정

    유형: 부울

    기본값: true

    필수 여부: 아니요

응답

200 - 성공

명칭 설명

testId

테스트의 고유 ID(예: seQUy12LKL)

testRunId

특정 테스트 실행 ID(예: 2DEwHItEne)

testDescription

로드 테스트에 대한 설명

testType

테스트 유형(예: , simplejmeter)

status

테스트 실행 상태: complete, runningfailed, 또는 cancelled

startTime

테스트가 시작된 시간 및 날짜(예: 2025-09-09 21:01:00)

endTime

테스트가 종료된 시간 및 날짜(예: 2025-09-09 21:18:29)

succPercent

성공률(예: 100.00)

testTaskConfigs

region, 및 taskCount를 포함하는 작업 구성 객체 배열 concurrency

completeTasks

완료된 작업 수에 리전 매핑 객체

results

avg_lt (평균 지연 시간), 백분위수(p0_0, , p50_0, p90_0, p95_0 p99_0p99_9, p100_0), avg_rt (평균 응답 시간), avg_ct (평균 연결 시간), stdev_rt (표준 편차 응답 시간), concurrency, throughput, succ (성공 횟수), fail (실패 횟수), bytes, testDuration, metricS3Location, rc (응답 코드 배열) 및 labels 배열을 포함한 세부 지표가 포함된 객체

testScenario

execution, reportingscenarios 속성을 사용하여 테스트 구성을 포함하는 객체

history

과거 테스트 결과 배열(일 때 제외됨history=false)

오류 응답

  • 400 - 잘못된 testId 또는 testRunId

  • 404 - 테스트 실행을 찾을 수 없음

  • 500 - 내부 서버 오류

DELETE /scenarios/{testId}/testruns/{testRunId}

설명

DELETE /scenarios/{testId}/testruns/{testRunId} 작업은 특정 테스트 실행과 관련된 모든 데이터와 아티팩트를 삭제합니다. 테스트 실행 데이터는 DynamoDB에서 제거되지만 S3의 실제 테스트 데이터는 변경되지 않습니다.

요청 파라미터

testId
  • 테스트 시나리오 ID

    유형: 문자열

    필수 항목 여부: 예

testRunId
  • 삭제할 특정 테스트 실행 ID

    유형: 문자열

    필수 항목 여부: 예

응답

204 - 성공

테스트 실행이 성공적으로 삭제되었습니다(콘텐츠가 반환되지 않음).

오류 응답

  • 400 - 잘못된 testId 또는 testRunId

  • 403 - 금지됨: 테스트 실행을 삭제할 수 있는 권한이 부족함

  • 404 - 테스트 실행을 찾을 수 없음

  • 409 - 충돌: 테스트 실행이 현재 실행 중이며 삭제할 수 없음

  • 500 - 내부 서버 오류

GET /scenarios/{testId}/Baseline

설명

GET /scenarios/{testId}/baseline 작업은 시나리오에 대해 지정된 기준 테스트 결과를 검색합니다. data 파라미터에 따라 기준 테스트 실행 ID 또는 전체 기준 결과를 반환합니다.

요청 파라미터

testId
  • 테스트 시나리오 ID

    유형: 문자열

    필수 항목 여부: 예

data
  • 인 경우 전체 기준 테스트 실행 데이터를 반환하고true, 그렇지 않으면 testRunId만 반환합니다.

    유형: 부울

    기본값: false

    필수 여부: 아니요

응답

200 - 성공

Whendata=false(기본값):

명칭 설명

testId

테스트 시나리오 ID(예: seQUy12LKL)

baselineTestRunId

기준 테스트 실행 ID(예: 2DEwHItEne)

인 경우data=true:

명칭 설명

testId

테스트 시나리오 ID(예: seQUy12LKL)

baselineTestRunId

기준 테스트 실행 ID(예: 2DEwHItEne)

baselineData

전체 테스트 실행 결과 객체(와 동일한 구조GET /scenarios/{testId}/testruns/{testRunId})

오류 응답

  • 400 - 잘못된 testId 파라미터

  • 404 - 테스트 시나리오를 찾을 수 없거나 기준 세트를 찾을 수 없음

  • 500 - 내부 서버 오류

PUT /시나리오/{testId}/기준

설명

PUT /scenarios/{testId}/baseline 작업은 특정 테스트 실행을 성능 비교의 기준으로 지정합니다. 시나리오당 하나의 기준만 설정할 수 있습니다.

요청 파라미터

testId
  • 테스트 시나리오 ID

    유형: 문자열

    필수 항목 여부: 예

요청 본문

명칭 설명

testRunId

기준으로 설정할 테스트 실행 ID(예: 2DEwHItEne)

응답

200 - 성공

명칭 설명

message

확인 메시지(예: Baseline set successfully)

testId

테스트 시나리오 ID(예: seQUy12LKL)

baselineTestRunId

설정된 기준 테스트 실행 ID(예: 2DEwHItEne)

오류 응답

  • 400 - 잘못된 testId 또는 testRunId

  • 404 - 테스트 시나리오 또는 테스트 실행을 찾을 수 없음

  • 409 - 충돌: 테스트 실행을 기준으로 설정할 수 없음(예: 테스트 실패)

  • 500 - 내부 서버 오류

DELETE /scenarios/{testId}/Baseline

설명

DELETE /scenarios/{testId}/baseline 작업은 시나리오를 빈 문자열로 설정하여 시나리오의 기준 값을 지웁니다.

요청 파라미터

testId
  • 테스트 시나리오 ID

    유형: 문자열

    필수 항목 여부: 예

응답

204 - 성공

기준이 성공적으로 지워졌습니다(콘텐츠가 반환되지 않음).

오류 응답

  • 400 - 잘못된 testId

  • 500 - 내부 서버 오류

GET/작업

설명

GET /tasks 작업을 통해 실행 중인 Amazon Elastic Container Service(Amazon ECS) 작업 목록을 검색할 수 있습니다.

응답

명칭 설명

tasks

테스트 실행을 위한 작업 IDs 목록

옵션/작업

설명

OPTIONS /tasks 작업 작업은 요청에 대한 응답을 올바른 CORS 응답 헤더와 함께 제공합니다.

응답

명칭 설명

taskIds

테스트 실행을 위한 작업 IDs 목록

GET/리전

설명

GET /regions 작업을 통해 해당 리전에서 테스트를 실행하는 데 필요한 리전 리소스 정보를 검색할 수 있습니다.

응답

명칭 설명

testId

리전 ID

ecsCloudWatchLogGroup

리전의 Amazon Fargate 작업에 대한 Amazon CloudWatch 로그 그룹의 이름입니다.

region

테이블의 리소스가 있는 리전

subnetA

리전에 있는 서브넷 중 하나의 ID입니다.

subnetB

리전에 있는 서브넷 중 하나의 ID입니다.

taskCluster

리전에 있는 AWS Fargate 클러스터의 이름

taskDefinition

리전에 있는 작업 정의의 ARN

taskImage

리전에 있는 작업 이미지의 이름입니다.

taskSecurityGroup

리전에 있는 보안 그룹의 ID입니다.

옵션/리전

설명

OPTIONS /regions 작업은 요청에 대한 응답을 올바른 CORS 응답 헤더와 함께 제공합니다.

응답

명칭 설명

testId

리전 ID

ecsCloudWatchLogGroup

리전의 Amazon Fargate 작업에 대한 Amazon CloudWatch 로그 그룹의 이름입니다.

region

테이블의 리소스가 있는 리전

subnetA

리전에 있는 서브넷 중 하나의 ID입니다.

subnetB

리전에 있는 서브넷 중 하나의 ID입니다.

taskCluster

리전에 있는 AWS Fargate 클러스터의 이름

taskDefinition

리전에 있는 작업 정의의 ARN

taskImage

리전에 있는 작업 이미지의 이름입니다.

taskSecurityGroup

리전에 있는 보안 그룹의 ID입니다.