View a markdown version of this page

MCP 도구 사양 - AWS의 분산 로드 테스트

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

MCP 도구 사양

분산 로드 테스트 솔루션은 AI 에이전트가 테스트 시나리오 및 결과와 상호 작용할 수 있는 일련의 MCP 도구를 제공합니다. 이러한 도구는 AI 에이전트가 정보를 처리하는 방식에 맞는 상위 수준의 추상화된 기능을 제공하므로 세부 API 계약이 아닌 분석 및 인사이트에 집중할 수 있습니다.

MCP 서버는 MCPServerAccessMode AWS CloudFormation 파라미터로 제어되는 두 가지 액세스 모드를 지원합니다.

  • ReadOnly(기본값) - 읽기 도구만 등록됩니다. 에이전트는를 통해 7개의 도구를 볼 수 있습니다tools/list. 변경 작업을 사용할 수 없습니다.

  • ReadWrite - 읽기 및 쓰기 도구가 모두 등록됩니다. 에이전트는를 통해 모든 도구(읽기 및 쓰기)를 볼 수 tools/list 있으며 테스트를 생성하고, 실행을 트리거하고, 일정을 관리하고, 스크립트를 업로드할 수 있습니다.

액세스 모드는 배포 시 설정됩니다. 초기 배포 후 액세스 모드를 변경하려면 새 MCPServerAccessMode 파라미터 값으로 CloudFormation 스택 업데이트를 수행합니다. 변경 사항은 스택 업데이트가 완료될 때 적용되며 다른 수동 단계는 필요하지 않습니다.

ReadOnly 모드에서는 쓰기 도구가 전혀 등록되지 않으므로 에이전트는에서 도구를 볼 수 없습니다tools/list. MCP 서버의 AWS Lambda 함수에 대한 AWS Identity and Access Management(IAM) 정책의 범위는 그에 따라 조정됩니다. AWS Lambda ReadOnly는 API에 대한 GET 요청만 허용합니다. ReadWrite는 GET, POST, PUT 및 DELETE를 허용합니다.

도구 읽기

list_scenarios

설명

이 list_scenarios 도구는 기본 메타데이터를 사용하여 사용 가능한 모든 테스트 시나리오 목록을 검색합니다.

엔드포인트

GET /scenarios

파라미터

없음

응답

이름 설명

testId

테스트 시나리오의 고유 식별자

testName

테스트 시나리오의 이름

status

테스트 시나리오의 현재 상태

startTime

테스트가 생성되거나 마지막으로 실행된 시간

testDescription

테스트 시나리오에 대한 설명

get_scenario_details

설명

get_scenario_details 도구는 단일 테스트 시나리오에 대한 테스트 구성과 최신 테스트 실행을 검색합니다.

응답은 시나리오의 트래픽 셰이프 모드를 보고합니다. nativeRunMode 객체는 네이티브 모드를 나타내고, 객체가 없으면 표준 모드를 나타냅니다. 네이티브 시나리오의 경우 , concurrency rampUp및 holdFor 필드는 생성된 실행 로드를 반영하지 않습니다. 로드는 대신 스크립트에서 가져옵니다. 자세한 내용은 트래픽 셰이프 모드를 참조하세요.

엔드포인트

GET /scenarios/<test_id>?history=false&results=false

요청 파라미터

test_id
  • 테스트 시나리오의 고유 식별자

    유형: 문자열

    필수 항목 여부: 예

응답

이름 설명

testTaskConfigs

각 리전에 대한 작업 구성

testScenario

테스트 정의 및 파라미터

status

현재 테스트 상태

startTime

테스트 시작 타임스탬프

endTime

테스트 종료 타임스탬프(완료된 경우)

list_test_runs

설명

list_test_runs 도구는 최신에서 오래된 것으로 정렬된 특정 테스트 시나리오에 대한 테스트 실행 목록을 검색합니다. 최대 30개의 결과를 반환합니다. limit 또는 중 하나만 제공할 start_timestamp 수 있으며 둘 다 제공할 수는 없습니다.

엔드포인트

GET /scenarios/<testid>/testruns/?limit=<limit>

또는

GET /scenarios/<testid>/testruns/?start_timestamp=<start_timestamp>

요청 파라미터

test_id
  • 테스트 시나리오의 고유 식별자

    유형: 문자열

    필수 항목 여부: 예

limit
  • 반환할 최대 테스트 실행 수입니다. start_timestamp 플래그에는 사용할 수 없습니다.

    유형: 정수

    기본값: 20

    최대: 30

    필수 항목 여부: 아니요

start_timestamp
  • 이 타임스탬프로 돌아가는 모든 테스트 실행을 반환합니다. limit 플래그에는 사용할 수 없습니다.

    유형: 문자열(ISO 8601 날짜-시간 형식, 예: 2024-01-15T14:30:00.000Z)

    필수 항목 여부: 아니요

응답

이름 설명

testRuns

각 실행에 대한 성능 지표 및 백분위수가 포함된 테스트 실행 요약 배열

get_test_run

설명

이 get_test_run 도구는 리전 및 엔드포인트 분석을 사용하여 단일 테스트 실행에 대한 자세한 결과를 검색합니다.

엔드포인트

GET /scenarios/<testid>/testruns/<testrunid>

요청 파라미터

test_id
  • 테스트 시나리오의 고유 식별자

    유형: 문자열

    필수 항목 여부: 예

test_run_id
  • 특정 테스트 실행의 고유 식별자

    유형: 문자열

    필수 항목 여부: 예

응답

이름 설명

results

리전별 결과 분석, 엔드포인트별 지표, 성능 백분위수(p50, p90, p95, p99), 성공 및 실패 수, 응답 시간 및 지연 시간, 실행에 사용되는 테스트 구성을 포함한 전체 테스트 실행 데이터

get_latest_test_run

설명

get_latest_test_run 도구는 특정 테스트 시나리오에 대한 최신 테스트 실행을 검색합니다.

엔드포인트

GET /scenarios/<testid>/testruns/?limit=1

참고

결과는 글로벌 보조 인덱스(GSI)를 사용하여 시간별로 정렬되므로 가장 최근의 테스트 실행이 반환됩니다.

요청 파라미터

test_id
  • 테스트 시나리오의 고유 식별자

    유형: 문자열

    필수 항목 여부: 예

응답

이름 설명

results

와 동일한 형식의 최신 테스트 실행 데이터 get_test_run

get_baseline_test_run

설명

get_baseline_test_run 도구는 특정 테스트 시나리오에 대한 기준 테스트 실행을 검색합니다. 기준은 성능 비교 목적으로 사용됩니다.

엔드포인트

GET /scenarios/<test_id>/baseline

요청 파라미터

test_id
  • 테스트 시나리오의 고유 식별자

    유형: 문자열

    필수 항목 여부: 예

응답

이름 설명

baselineData

지정된 기준 실행의 모든 지표 및 구성을 포함하여 비교를 위한 기준 테스트 실행 데이터

get_test_run_artifacts

설명

이 get_test_run_artifacts 도구는 로그, 오류 파일 및 결과를 포함한 테스트 아티팩트에 액세스하기 위한 Amazon S3 버킷 정보를 검색합니다.

엔드포인트

GET /scenarios/<testid>/testruns/<testrunid>

요청 파라미터

test_id
  • 테스트 시나리오의 고유 식별자

    유형: 문자열

    필수 항목 여부: 예

test_run_id
  • 특정 테스트 실행의 고유 식별자

    유형: 문자열

    필수 항목 여부: 예

응답

이름 설명

bucketName

아티팩트가 저장되는 S3 버킷 이름

testRunPath

현재 아티팩트 스토리지의 경로 접두사(버전 4.0 이상)

testScenarioPath

레거시 아티팩트 스토리지의 경로 접두사(버전 4.0 이전)

도구 작성

쓰기 도구는가 로 설정된 경우에만 사용할 수 MCPServerAccessMode 있습니다ReadWrite. 이를 통해 에이전트는 테스트 시나리오를 생성, 수정 및 실행할 수 있습니다.

create_test

설명

create_test 도구는 실행하지 않고 새 로드 테스트 시나리오를 생성합니다. 테스트는 저장되며 나중에를 사용하여 실행할 수 있습니다start_run. 스크립트 기반 테스트(jmeter, k6,™t)의 경우 upload_test_script 먼저를 호출하고 반환된를 전달합니다test_id.

파라미터

test_id
  • 테스트 시나리오의 고유 식별자입니다. 간단한 HTTP 테스트의 경우 생략합니다(시스템에서 생성). 스크립트 기반 테스트에 필요 -에서 test_id 반환한를 사용합니다upload_test_script.

    유형: 문자열

    필수: 아니요(스크립트 기반 테스트의 경우 필수)

test_name
  • 테스트 시나리오의 사람이 읽을 수 있는 이름

    유형: 문자열

    필수 항목 여부: 예

test_description
  • 이 테스트가 검증하는 항목에 대한 설명

    유형: 문자열

    필수 항목 여부: 예

test_type
  • 테스트 유형. 인라인으로 구성된 simple HTTP 엔드포인트 테스트locust의 경우 jmeter, k6또는 업로드된 스크립트 파일을 참조하는 스크립트 기반 테스트의 경우 .

    유형: 문자열

    필수 항목 여부: 예

test_task_configs
  • 리전 작업 구성. 각 항목은 리전, AWS Fargate 작업 수 및 작업당 동시 가상 사용자를 지정합니다. 리전의 총 동시 사용자 = task_count × concurrency.

    유형: 객체 배열(각각 region, task_count, concurrency)

    필수 항목 여부: 예

test_scenario
  • 로드 프로파일과 대상 엔드포인트(들)를 정의하는 테스트 실행 시나리오입니다. execution (ramp-up, hold-for, scenario name) 및 scenarios (단순 테스트를 위한 requests 배열 또는 스크립트 기반 테스트를 위한 script 문자열이 있는 명명된 시나리오 정의)를 포함합니다.

    유형: 객체

    필수 항목 여부: 예

show_live
  • 테스트 실행 중에 라이브 모니터링을 활성화할지 여부입니다.

    유형: Boolean

    기본값: false

    필수 항목 여부: 아니요

tags
  • 테스트 시나리오를 구성하기 위한 태그입니다. 최대 5개의 태그.

    유형: 문자열 배열

    필수 항목 여부: 아니요

native_run_mode
  • 트래픽 셰이프 모드를 선택하는 객체입니다. 솔루션이 로드를 제어하는 표준 모드에서는 생략합니다. 업로드된 스크립트가 로드를 제어하는 네이티브 모드에 포함합니다. 자세한 내용은 트래픽 셰이프 모드를 참조하세요.

    유형: 객체

    필수 항목 여부: 아니요

기본 모드는 다음과 같이 표준 모드와 다릅니다.

  • 객체에는 max_test_duration_seconds최대 24시간의 필드 1개가 필요합니다.

  • 스크립트 기반 테스트(jmeter, k6또는 locust)만 네이티브 모드를 허용합니다.

  • 단순 HTTP 엔드포인트 테스트는 항상 표준 모드에서 실행됩니다.

  • test_task_configs는 필수 항목으로 유지되며 각 항목에는 여전히가 필요합니다concurrency.

  • 가 concurrency로 설정된 요청은 성공을 native_run_mode 반환합니다.

  • 테스트가 생성하는 로드는 스크립트가 선언하는 로드입니다.

  • 리전당 총 로드는 스크립트의 로드에를 곱한 값입니다task_count.

응답

이름 설명

testId

생성된 테스트의 고유 ID

testName

테스트 이름

status

테스트 상태(예: created)

update_test

설명

update_test 도구는 기존 테스트 시나리오의 구성을 업데이트합니다. 이는 완전히 대체됩니다. 변경된 필드뿐만 아니라 전체 테스트 구성을 제공해야 합니다. 테스트가 현재 실행 중이어서는 안 됩니다.

파라미터

와 동일create_test하지만 test_id는 필수이며 기존 테스트를 참조해야 합니다.

응답

이름 설명

testId

업데이트된 테스트의 고유 ID

testName

테스트 이름

status

테스트 상태

delete_test

설명

이 delete_test 도구는 테스트 시나리오와 테스트 실행 기록, 일정 및 Amazon CloudWatch 대시보드를 포함한 모든 관련 데이터를 영구적으로 삭제합니다. 이 작업은 실행을 취소할 수 없습니다. 테스트가 현재 실행 중이어서는 안 됩니다.

파라미터

test_id
  • 테스트 시나리오의 고유 식별자

    유형: 문자열

    필수 항목 여부: 예

응답

이름 설명

status

삭제 확인

시작_실행

설명

start_run 도구가 테스트 시나리오 실행을 시작합니다. MCP 서버는 테스트의 저장된 구성을 가져오고 실행을 트리거합니다. 상태 로 즉시 반환합니다queued. get_latest_test_run를 사용하여 완료를 위해 폴링합니다.

파라미터

test_id
  • 테스트 시나리오의 고유 식별자

    유형: 문자열

    필수 항목 여부: 예

응답

이름 설명

testId

테스트의 고유 ID

status

테스트 상태(예: queued)

stop_run

설명

stop_run 도구는 현재 실행 중인 테스트를 중지합니다. 실행 중인 모든 Fargate 작업에 취소 신호를 보냅니다. 테스트 상태가 로 전환됩니다cancelled. 를 통해 부분 결과를 사용할 수 있습니다get_latest_test_run.

파라미터

test_id
  • 테스트 시나리오의 고유 식별자

    유형: 문자열

    필수 항목 여부: 예

응답

이름 설명

status

취소 확인

create_simple_schedule

설명

이 create_simple_schedule 도구는 지정된 날짜 및 시간에 자동으로 실행되는 일회성 예약 테스트를 생성합니다. 모든 표준 테스트 구성 필드와 일정 필드가 필요합니다.

파라미터

모든 create_test 파라미터(선택 test_id 사항, 동일한 규칙 포함) +:

schedule_date
  • 예약된 실행 날짜입니다. 미래여야 합니다.

    유형: 문자열(형식: YYYY-MM-DD)

    필수 항목 여부: 예

schedule_time
  • 예약된 실행 시간입니다.

    유형: 문자열(형식: HH:MM, 24시간)

    필수 항목 여부: 예

schedule_timezone
  • 일정 해석을 위한 IANA 시간대(예: , America/New_YorkUTC).

    유형: 문자열

    기본값: UTC

    필수 항목 여부: 아니요

응답

이름 설명

testId

테스트의 고유 ID

status

테스트 상태(예: scheduled)

nextRun

다음 예약된 실행 시간

create_cron_일정

설명

이 create_cron_schedule 도구는 cron 표현식에 따라 자동으로 실행되는 반복 예약 테스트를 생성합니다. 모든 표준 테스트 구성 필드와 cron 일정 필드가 필요합니다.

파라미터

모든 create_test 파라미터(선택 test_id 사항, 동일한 규칙 포함) +:

cron_value
  • 반복 일정에 대한 Cron 표현식입니다. 표준 5필드 형식(예: 0 9 * * * 매일 오전 9시).

    유형: 문자열

    필수 항목 여부: 예

recurrence
  • 사람이 읽을 수 있는 반복 레이블(예: , dailyweekly).

    유형: 문자열

    필수 항목 여부: 예

cron_expiry_date
  • 반복 일정 실행이 중지된 날짜입니다.

    유형: 문자열(형식: YYYY-MM-DD)

    필수 항목 여부: 아니요

schedule_timezone
  • 일정 해석을 위한 IANA 시간대입니다.

    유형: 문자열

    기본값: UTC

    필수 항목 여부: 아니요

응답

이름 설명

testId

테스트의 고유 ID

status

테스트 상태(예: scheduled)

nextRun

다음 예약된 실행 시간

update_simple_일정

설명

update_simple_schedule 도구는 기존 일회성 예약 테스트의 예약 구성을 업데이트합니다. 일정 필드를 포함하여 테스트 구성을 완전히 바꿉니다. 테스트는 scheduled 상태여야 합니다.

파라미터

와 동일create_simple_schedule하지만 test_id는 필수이며 기존 예약된 테스트를 참조해야 합니다.

응답

create_simple_schedule와 동일합니다.

update_cron_일정

설명

update_cron_schedule 도구는 기존 반복 예약 테스트의 예약 구성을 업데이트합니다. cron 일정 필드를 포함하여 테스트 구성을 완전히 바꿉니다. 테스트는 scheduled 상태여야 합니다.

파라미터

와 동일create_cron_schedule하지만 test_id는 필수이며 기존 예약된 테스트를 참조해야 합니다.

응답

create_cron_schedule와 동일합니다.

upload_test_script

설명

이 upload_test_script 도구는 스크립트 기반 테스트에 필요한 스크립트 파일(JMeter .jmx, k6 .py, .jsLocust 또는 .zip)을 업로드합니다. 스크립트 기반 테스트의 create_test update_test 경우 또는 이전에 호출해야 합니다. 후속 도구 호출에 script_filename 사용할 test_id 및를 반환합니다.

파라미터

test_id
  • 테스트 시나리오의 고유 식별자입니다. 새 테스트의 경우 생략합니다(시스템에서 생성). 기존 테스트를 제공하여 올바른 위치에 업로드합니다.

    유형: 문자열

    필수 항목 여부: 아니요

test_type
  • 테스트 유형: jmeter, k6또는 locust.

    유형: 문자열

    필수 항목 여부: 예

file_extension
  • 파일 확장명: jmx, jspy, 또는 zip.

    유형: 문자열

    필수 항목 여부: 예

file_content
  • Base64-encoded 파일 콘텐츠입니다.

    유형: 문자열

    필수 항목 여부: 예

응답

이름 설명

test_id

테스트 ID(생성되거나 제공됨)

script_filename

S3의 파일 이름(형식: <test_id>.<extension>). 에서 이를 참조합니다test_scenario.scenarios.

워크플로 가이드

워크플로 가이드는 에이전트가 공통 작업을 위해 여러 도구를 함께 연결하는 데 도움이 되는 다단계 레시피입니다. 이 get_workflow_guides 도구는 각 워크플로에 대한 구조step-by-step 지침을 반환합니다.

get_workflow_guides

설명

이 get_workflow_guides 도구는 일반적인 다중 도구 DLT 작업에 대한 step-by-step 워크플로 레시피를 반환합니다. 호출할 도구, 순서 및 단계 간 결과를 해석하는 방법에 대한 구조화된 지침을 반환합니다.

파라미터

workflow
  • 지침을 검색할 워크플로입니다. 다음 중 하나: run_and_monitor, baseline_comparison, schedule_test, create_and_run, update_and_run.

    유형: 문자열

    필수 항목 여부: 예

응답

이름 설명

workflow

워크플로 식별자

description

워크플로의 용도에 대한 간략한 설명

steps

각각 step (숫자), action (해야 할 일), tool ( 호출할 MCP 도구 또는 도구가 아닌 단계의 경우 null) 및 details (특정 지침)이 있는 단계 객체 배열

사용 가능한 워크플로

run_and_monitor

기존 테스트 실행을 시작하고 완료될 때까지 폴링합니다.

  1. list_scenarios 또는를 사용하여 테스트 찾기 get_scenario_details

  2. 를 사용하여 테스트 실행 시작 start_run

  3. 를 사용하여 완료하기 위한 폴링get_latest_test_run(권장 간격: 30초, Amazon Elastic Container Service(Amazon ECS) 작업이 시작되는 동안 1~3분 동안 초기 404 처리)

  4. 터미널 상태에 도달하면 결과 보고(complete, failed또는 cancelled)

baseline_comparison

테스트를 실행하고 저장된 기준과 결과를 비교합니다.

  1. list_scenarios 또는를 사용하여 테스트 찾기 get_scenario_details

  2. 를 사용하여 테스트 실행 시작 start_run

  3. 를 사용하여 완료하기 위한 폴링get_latest_test_run(권장 간격: 30초)

  4. 를 사용하여 기준 검색get_baseline_test_run(기준이 설정되지 않은 경우 비교 건너뛰기)

  5. 지표 비교(평균 응답 시간, 지연 시간, 처리량, 백분위수, 오류율)

일정_테스트

반복 또는 일회성 일정으로 테스트를 생성합니다.

  1. 일정 유형 결정(일회성 → create_simple_schedule, 반복 → create_cron_schedule)

  2. 를 사용하여 스크립트 기반인 경우 테스트 스크립트 업로드 upload_test_script

  3. 전체 구성 및 일정 필드를 사용하여 예약된 테스트 생성

  4. 를 사용하여 일정이 생성되었는지 확인get_scenario_details( status: scheduled 및 확인nextRun)

제약 조건: 반복 실행 간 최소 1시간 간격, 간격이 테스트 기간을 초과해야 함, cron이 정확히 1분 값을 지정해야 함.

create_and_run

처음부터 새 테스트를 생성하고 즉시 실행합니다.

  1. 를 사용하여 스크립트 기반인 경우 테스트 스크립트 업로드 upload_test_script

  2. 를 사용하여 테스트 생성 create_test

  3. 반환된와 start_run 함께를 사용하여 테스트 실행 시작 test_id

  4. 를 사용하여 완료하기 위한 폴링get_latest_test_run(권장 간격: 30초)

  5. 결과 보고

update_and_run

기존 테스트의 구성을 수정하고 즉시 다시 실행합니다.

  1. 를 사용하여 현재 구성 검색 get_scenario_details

  2. 를 사용하여 스크립트를 변경하는 경우 새 스크립트 업로드 upload_test_script

  3. 를 사용하여 테스트 구성 업데이트update_test(전체 대체 - 모든 필드 포함)

  4. 를 사용하여 테스트 실행 시작 start_run

  5. 를 사용하여 완료하기 위한 폴링get_latest_test_run(권장 간격: 30초)

  6. 결과 보고

참고

모든 MCP 도구는 기존 API 엔드포인트를 활용합니다. MCP 기능을 지원하기 위해 기본 APIs를 수정할 필요가 없습니다.