View a markdown version of this page

Especificação de ferramentas MCP - Teste de carga distribuída na AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Especificação de ferramentas MCP

A solução Distributed Load Testing expõe um conjunto de ferramentas MCP que permitem que agentes de IA interajam com cenários e resultados de teste. Essas ferramentas fornecem recursos abstratos de alto nível que se alinham à forma como os agentes de IA processam as informações, permitindo que eles se concentrem em análises e insights, em vez de contratos detalhados de API.

O servidor MCP oferece suporte a dois modos de acesso, controlados pelo CloudFormation parâmetro da MCPServerAccessMode AWS:

  • ReadOnly(padrão) — Somente as ferramentas de leitura são registradas. Os agentes veem 7 ferramentas viatools/list. Nenhuma operação de mutação está disponível.

  • ReadWrite— As ferramentas de leitura e gravação são registradas. Os agentes veem todas as ferramentas (leitura e gravação) por meio tools/list delas e podem criar testes, acionar execuções, gerenciar agendas e fazer upload de scripts.

O modo de acesso é definido no momento da implantação. Para alterar o modo de acesso após a implantação inicial, execute uma atualização de CloudFormation pilha com o novo valor do MCPServerAccessMode parâmetro. A alteração entra em vigor quando a atualização da pilha é concluída — nenhuma outra etapa manual é necessária.

No ReadOnly modo, as ferramentas de gravação não são registradas de forma alguma — os agentes nunca as veem látools/list. A política do AWS Identity and Access Management (IAM) sobre a função AWS Lambda do servidor MCP tem um escopo adequado. ReadOnly permite somente solicitações GET para a API. ReadWrite permite GET, POST, PUT e DELETE.

Ferramentas de leitura

listar_cenários

Description

A list_scenarios ferramenta recupera uma lista de todos os cenários de teste disponíveis com metadados básicos.

Endpoint

GET /scenarios

Parâmetros

Nenhum

Resposta

Name (Nome) Description

testId

Identificador exclusivo para o cenário de teste

testName

Nome do cenário de teste

status

Status atual do cenário de teste

startTime

Quando o teste foi criado ou executado pela última vez

testDescription

Descrição do cenário de teste

get_scenario_details

Description

A get_scenario_details ferramenta recupera a configuração do teste e a execução do teste mais recente para um único cenário de teste.

A resposta relata o modo de formato do tráfego do cenário. Um nativeRunMode objeto indica o modo nativo e sua ausência indica o modo padrão. Para um cenário nativoconcurrency, os holdFor camposrampUp, e não refletem a carga gerada pela execução. Em vez disso, a carga vem do script. Para obter mais informações, consulte Modos de formato de tráfego.

Endpoint

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

Parâmetro de solicitação

test_id
  • O identificador exclusivo para o cenário de teste

    Tipo: String

    Obrigatório: Sim

Resposta

Name (Nome) Description

testTaskConfigs

Configuração de tarefas para cada região

testScenario

Definição e parâmetros do teste

status

Status atual do teste

startTime

Carimbo de data e hora de início do teste

endTime

Timestamp de término do teste (se concluído)

list_test_runs

Description

A list_test_runs ferramenta recupera uma lista de execuções de teste para um cenário de teste específico, classificada da mais recente para a mais antiga. Retorna no máximo 30 resultados. Somente um limit ou start_timestamp pode ser fornecido, não ambos.

Endpoint

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

or

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

Parâmetros de solicitação

test_id
  • O identificador exclusivo para o cenário de teste

    Tipo: String

    Obrigatório: Sim

limit
  • Número máximo de execuções de teste a serem retornadas. Não pode ser usado com start_timestamp.

    Tipo: inteiro

    Padrão: 20

    Máximo: 30

    Obrigatório: não

start_timestamp
  • Retorne todas as execuções de teste que remontam a esse carimbo de data/hora. Não pode ser usado com limit.

    Tipo: Cadeia de caracteres (formato de data e hora ISO 8601, por exemplo) 2024-01-15T14:30:00.000Z

    Obrigatório: não

Resposta

Name (Nome) Description

testRuns

Conjunto de resumos de execução de teste com métricas de desempenho e percentis para cada execução

get_test_run

Description

A get_test_run ferramenta recupera resultados detalhados para uma única execução de teste com detalhamentos regionais e de terminais.

Endpoint

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

Parâmetros de solicitação

test_id
  • O identificador exclusivo para o cenário de teste

    Tipo: String

    Obrigatório: Sim

test_run_id
  • O identificador exclusivo para a execução específica do teste

    Tipo: String

    Obrigatório: Sim

Resposta

Name (Nome) Description

results

Dados completos da execução do teste, incluindo detalhamento dos resultados regionais, métricas específicas do terminal, percentis de desempenho (p50, p90, p95, p99), contagens de sucesso e falhas, tempos de resposta e latência e configuração de teste usada para a execução

get_latest_test_run

Description

A get_latest_test_run ferramenta recupera o teste mais recente para um cenário de teste específico.

Endpoint

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

nota

Os resultados são classificados por tempo usando um Índice Secundário Global (GSI), para que o teste mais recente seja retornado.

Parâmetro de solicitação

test_id
  • O identificador exclusivo para o cenário de teste

    Tipo: String

    Obrigatório: Sim

Resposta

Name (Nome) Description

results

Dados de execução de teste mais recentes com o mesmo formato get_test_run

get_baseline_test_run

Description

A get_baseline_test_run ferramenta recupera o teste básico executado para um cenário de teste específico. A linha de base é usada para fins de comparação de desempenho.

Endpoint

GET /scenarios/<test_id>/baseline

Parâmetro de solicitação

test_id
  • O identificador exclusivo para o cenário de teste

    Tipo: String

    Obrigatório: Sim

Resposta

Name (Nome) Description

baselineData

Dados de execução do teste de linha de base para fins de comparação, incluindo todas as métricas e configurações da execução da linha de base designada

get_test_run_artifacts

Description

A get_test_run_artifacts ferramenta recupera informações do bucket do Amazon S3 para acessar artefatos de teste, incluindo registros, arquivos de erro e resultados.

Endpoint

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

Parâmetros de solicitação

test_id
  • O identificador exclusivo para o cenário de teste

    Tipo: String

    Obrigatório: Sim

test_run_id
  • O identificador exclusivo para a execução específica do teste

    Tipo: String

    Obrigatório: Sim

Resposta

Name (Nome) Description

bucketName

Nome do bucket do S3 em que os artefatos são armazenados

testRunPath

Prefixo do caminho para o armazenamento atual de artefatos (versão 4.0+)

testScenarioPath

Prefixo do caminho para armazenamento de artefatos legados (versão anterior à 4.0)

Ferramentas de escrita

As ferramentas de gravação só estão disponíveis quando MCPServerAccessMode estão definidas comoReadWrite. Eles permitem que os agentes criem, modifiquem e executem cenários de teste.

criar_teste

Description

A create_test ferramenta cria um novo cenário de teste de carga sem executá-lo. O teste é salvo e pode ser executado posteriormente comstart_run. Para testes baseados em script (jmeter, k6, locust), chame upload_test_script primeiro e passe o retornado. test_id

Parâmetros

test_id
  • O identificador exclusivo do cenário de teste. Omitir para testes HTTP simples (o sistema gera um). Obrigatório para testes baseados em script — use o test_id retornado por. upload_test_script

    Tipo: string

    Obrigatório: Não (necessário para testes baseados em script)

test_name
  • Human-readable nome para o cenário de teste

    Tipo: String

    Obrigatório: Sim

test_description
  • Descrição do que esse teste valida

    Tipo: String

    Obrigatório: Sim

test_type
  • Tipo de teste. simplepara testes de endpoint HTTP configurados em linha. jmeter,k6, ou locust para testes baseados em script que fazem referência a um arquivo de script carregado.

    Tipo: String

    Obrigatório: Sim

test_task_configs
  • Configuração de tarefas regionais. Cada entrada especifica uma região, o número de tarefas do AWS Fargate e usuários virtuais simultâneos por tarefa. Total de usuários simultâneos para uma região = task_count ×concurrency.

    Tipo: Matriz de objetos (cada um comregion,task_count,concurrency)

    Obrigatório: Sim

test_scenario
  • Cenário de execução de teste definindo o perfil de carga e o (s) endpoint (s) de destino. Contém execution (ramp-up, hold-for, nome do cenário) e scenarios (definições de cenário nomeadas com uma requests matriz para testes simples ou uma script string para testes baseados em script).

    Tipo: objeto

    Obrigatório: Sim

show_live
  • Se deve habilitar o monitoramento ao vivo durante a execução do teste.

    Tipo: booliano

    Padrão: false

    Exigido: Não

tags
  • Tags para organizar cenários de teste. Máximo de 5 tags.

    Tipo: matriz de strings

    Obrigatório: Não

native_run_mode
  • Um objeto que seleciona o modo de formato do tráfego. Omita-o para o modo Padrão, em que a solução controla a carga. Inclua-o no modo nativo, em que seu script carregado controla o carregamento. Para obter mais informações, consulte Modos de formato de tráfego.

    Tipo: objeto

    Obrigatório: não

O modo nativo difere do modo padrão da seguinte forma:

  • O objeto requer um campomax_test_duration_seconds, com um máximo de 24 horas.

  • Somente testes baseados em script (jmeter,k6, oulocust) aceitam o modo nativo.

  • Testes simples de endpoint HTTP sempre são executados no modo padrão.

  • test_task_configscontinua sendo obrigatório, e cada entrada ainda exigeconcurrency.

  • Uma solicitação que é definida concurrency com sucesso de native_run_mode devoluções.

  • A carga gerada pelo teste é a carga declarada pelo script.

  • A carga total por região é a carga do seu script multiplicada portask_count.

Resposta

Name (Nome) Description

testId

O ID exclusivo do teste criado

testName

Nome do teste

status

Status do teste (por exemplo,created)

teste_atualização

Description

A update_test ferramenta atualiza a configuração de um cenário de teste existente. Essa é uma substituição completa — toda a configuração de teste deve ser fornecida, não apenas os campos alterados. O teste não deve estar em execução no momento.

Parâmetros

O mesmo quecreate_test, exceto test_id que é obrigatório e deve fazer referência a um teste existente.

Resposta

Name (Nome) Description

testId

O ID exclusivo do teste atualizado

testName

Nome do teste

status

Status do teste

excluir_teste

Description

A delete_test ferramenta exclui permanentemente um cenário de teste e todos os dados associados, incluindo histórico de execução de testes, cronogramas e painéis da Amazon CloudWatch . Esta ação não pode ser desfeita. O teste não deve estar em execução no momento.

Parâmetros

test_id
  • O identificador exclusivo do cenário de teste

    Tipo: String

    Obrigatório: Sim

Resposta

Name (Nome) Description

status

Confirmação da exclusão

start_run

Description

A start_run ferramenta inicia a execução de um cenário de teste. O servidor MCP busca a configuração armazenada do teste e aciona a execução. Retorna imediatamente com statusqueued. Use get_latest_test_run para fazer uma enquete para conclusão.

Parâmetros

test_id
  • O identificador exclusivo do cenário de teste

    Tipo: String

    Obrigatório: Sim

Resposta

Name (Nome) Description

testId

O ID exclusivo do teste

status

Status do teste (por exemplo,queued)

parar_correr

Description

A stop_run ferramenta interrompe um teste em execução no momento. Envia um sinal de cancelamento para todas as tarefas do Fargate em execução. O status do teste muda para. cancelled Os resultados parciais estão disponíveis viaget_latest_test_run.

Parâmetros

test_id
  • O identificador exclusivo do cenário de teste

    Tipo: String

    Obrigatório: Sim

Resposta

Name (Nome) Description

status

Confirmação do cancelamento

create_simple_schedule

Description

A create_simple_schedule ferramenta cria um teste agendado único que é executado automaticamente em uma data e hora especificadas. Requer todos os campos de configuração de teste padrão, além dos campos de agendamento.

Parâmetros

Todos os create_test parâmetros (com as mesmas regras test_id opcionais), além de:

schedule_date
  • Data da execução programada. Deve estar no futuro.

    Tipo: Cadeia de caracteres (formato:YYYY-MM-DD)

    Obrigatório: Sim

schedule_time
  • Hora da execução programada.

    Tipo: Cadeia de caracteres (formato:HH:MM, 24 horas)

    Obrigatório: Sim

schedule_timezone
  • Fuso horário da IANA para interpretação do cronograma (por exemplo,America/New_York,UTC).

    Tipo: string

    Padrão: UTC

    Exigido: Não

Resposta

Name (Nome) Description

testId

O ID exclusivo do teste

status

Status do teste (por exemplo,scheduled)

nextRun

Próxima hora de execução programada

create_cron_schedule

Description

A create_cron_schedule ferramenta cria um teste agendado recorrente que é executado automaticamente de acordo com uma expressão cron. Requer todos os campos de configuração de teste padrão, além dos campos do cronograma cron.

Parâmetros

Todos os create_test parâmetros (com as mesmas regras test_id opcionais), além de:

cron_value
  • Expressão Cron para agendamento recorrente. Formato padrão de 5 campos (por 0 9 * * * exemplo, diariamente às 9h).

    Tipo: String

    Obrigatório: Sim

recurrence
  • Human-readable rótulo de recorrência (por exemplo,daily,weekly).

    Tipo: String

    Obrigatório: Sim

cron_expiry_date
  • Data em que a programação recorrente deixa de ser executada.

    Tipo: Cadeia de caracteres (formato:YYYY-MM-DD)

    Obrigatório: não

schedule_timezone
  • Fuso horário da IANA para interpretação do cronograma.

    Tipo: string

    Padrão: UTC

    Exigido: Não

Resposta

Name (Nome) Description

testId

O ID exclusivo do teste

status

Status do teste (por exemplo,scheduled)

nextRun

Próxima hora de execução programada

update_simple_schedule

Description

A update_simple_schedule ferramenta atualiza a configuração do cronograma para um teste agendado único existente. Substituição completa da configuração de teste, incluindo campos de agendamento. O teste deve estar em scheduled status.

Parâmetros

O mesmo quecreate_simple_schedule, exceto, test_id é obrigatório e deve fazer referência a um teste agendado existente.

Resposta

Igual a create_simple_schedule.

update_cron_schedule

Description

A update_cron_schedule ferramenta atualiza a configuração do agendamento para um teste agendado recorrente existente. Substituição completa da configuração de teste, incluindo campos de cronograma cron. O teste deve estar em scheduled status.

Parâmetros

O mesmo quecreate_cron_schedule, exceto, test_id é obrigatório e deve fazer referência a um teste agendado existente.

Resposta

Igual a create_cron_schedule.

script de teste de upload

Description

A upload_test_script ferramenta carrega um arquivo de script (JMeter.jmx, k6.js, Locust ou.zip) necessário para .py testes baseados em script. Deve ser chamado antes create_test ou update_test para testes baseados em script. Retorna um test_id e script_filename para uso em chamadas de ferramentas subsequentes.

Parâmetros

test_id
  • O identificador exclusivo do cenário de teste. Omitir para novos testes (o sistema gera um). Forneça o upload dos testes existentes para o local correto.

    Tipo: string

    Obrigatório: não

test_type
  • Tipo de teste:jmeter,k6, oulocust.

    Tipo: String

    Obrigatório: Sim

file_extension
  • Extensão do arquivo:jmx,js,py, ouzip.

    Tipo: String

    Obrigatório: Sim

file_content
  • Base64-encoded conteúdo do arquivo.

    Tipo: String

    Obrigatório: Sim

Resposta

Name (Nome) Description

test_id

O ID do teste (gerado ou fornecido)

script_filename

Nome do arquivo no S3 (formato:). <test_id>.<extension> Faça referência a isso emtest_scenario.scenarios.

guias de fluxo de trabalho

Os guias de fluxo de trabalho são receitas de várias etapas que ajudam os agentes a unir várias ferramentas para operações comuns. A get_workflow_guides ferramenta retorna uma orientação passo a passo estruturada para cada fluxo de trabalho.

get_workflow_guides

Description

A get_workflow_guides ferramenta retorna receitas de fluxo de trabalho passo a passo para operações DLT comuns com várias ferramentas. Retorna uma orientação estruturada sobre quais ferramentas usar, em que ordem e como interpretar os resultados entre as etapas.

Parâmetros

workflow
  • O fluxo de trabalho para o qual recuperar as orientações. Um dos:run_and_monitor,baseline_comparison,schedule_test,create_and_run,update_and_run.

    Tipo: String

    Obrigatório: Sim

Resposta

Name (Nome) Description

workflow

identificador de fluxo de trabalho

description

Breve descrição da finalidade do fluxo de trabalho

steps

Matriz de objetos de etapa, cada um com step (número), action (o que fazer), tool (qual ferramenta MCP chamar ou nulo para etapas que não sejam ferramentas) e details (instruções específicas)

Fluxos de trabalho disponíveis

run_and_monitor

Inicie um teste existente e faça uma pesquisa até a conclusão.

  1. Encontre o teste usando list_scenarios ou get_scenario_details

  2. Inicie a execução do teste usando start_run

  3. Pesquisa para conclusão usando get_latest_test_run (intervalo recomendado: 30 segundos; processe o 404 inicial por 1 a 3 minutos enquanto as tarefas do Amazon Elastic Container Service (Amazon ECS) são iniciadas)

  4. Relate os resultados quando o status do terminal for atingido (completefailed,, oucancelled)

comparação de linha de base

Execute um teste e compare os resultados com uma linha de base armazenada.

  1. Encontre o teste usando list_scenarios ou get_scenario_details

  2. Inicie a execução do teste usando start_run

  3. Enquete para conclusão usando get_latest_test_run (intervalo recomendado: 30 segundos)

  4. Recupere a linha de base usando get_baseline_test_run (pule a comparação se nenhuma linha de base estiver definida)

  5. Compare métricas (tempo médio de resposta, latência, taxa de transferência, percentis, taxa de erro)

schedule_test

Crie um teste com uma programação recorrente ou única.

  1. Determine o tipo de agendamento (único →create_simple_schedule, recorrente →) create_cron_schedule

  2. Carregue o script de teste se for baseado em script usando upload_test_script

  3. Crie o teste agendado com configuração completa e campos de agendamento

  4. Verifique se a programação foi criada usando get_scenario_details (check status: scheduled andnextRun)

Restrições: intervalo mínimo de 1 hora entre as execuções recorrentes, o intervalo deve exceder a duração do teste, o cron deve especificar exatamente um valor de minuto.

criar_e_executar

Crie um novo teste do zero e execute-o imediatamente.

  1. Carregue o script de teste se for baseado em script usando upload_test_script

  2. Crie o teste usando create_test

  3. Inicie a execução do teste usando start_run com o retornado test_id

  4. Enquete para conclusão usando get_latest_test_run (intervalo recomendado: 30 segundos)

  5. Resultados do relatório

atualizar_e_executar

Modifique a configuração de um teste existente e reexecute-o imediatamente.

  1. Recupere a configuração atual usando get_scenario_details

  2. Carregue um novo script se alterar o script usando upload_test_script

  3. Atualize a configuração de teste usando update_test (substituição completa — inclua todos os campos)

  4. Inicie a execução do teste usando start_run

  5. Enquete para conclusão usando get_latest_test_run (intervalo recomendado: 30 segundos)

  6. Resultados do relatório

nota

Todas as ferramentas MCP aproveitam os endpoints de API existentes. Nenhuma modificação nas APIs subjacentes é necessária para oferecer suporte à funcionalidade do MCP.