API de teste de carga distribuída - Teste de carga distribuído 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á.

API de teste de carga distribuída

Essa solução de teste de carga ajuda você a expor os dados dos resultados do teste de maneira segura. A API atua como uma “porta de entrada” para acesso aos dados de teste armazenados no Amazon DynamoDB. Você também pode usar o APIs para acessar qualquer funcionalidade estendida incorporada à solução.

Essa solução usa um grupo de usuários do Amazon Cognito integrado ao Amazon API Gateway para identificação e autorização. Quando um grupo de usuários é usado com a API, os clientes só podem chamar métodos ativados do grupo de usuários depois de fornecerem um token de identidade válido.

Para obter mais informações sobre a execução de testes diretamente por meio da API, consulte Solicitações de assinatura na documentação de referência da API REST do Amazon API Gateway.

As operações a seguir estão disponíveis na API da solução.

nota

Para obter mais informações testScenario e outros parâmetros, consulte cenários e exemplos de carga útil no GitHub repositório.

Informações da pilha

Cenários

Execuções de teste

Linha de base

Tarefas

Regiões

OBTENHA /stack-info

Description

A GET /stack-info operação recupera informações sobre a pilha implantada, incluindo horário de criação, região e versão. Esse endpoint é usado pelo front-end.

Resposta

200 - Sucesso

Name (Nome) Description

created_time

Carimbo de data/hora ISO 8601 quando a pilha foi criada (por exemplo,) 2025-09-09T19:40:22Z

region

Região da AWS em que a pilha é implantada (por exemplo,) us-east-1

version

Versão da solução implantada (por exemplo,v4.0.0)

Respostas de erro

  • 403- Proibido: permissões insuficientes para acessar as informações da pilha

  • 404- Não encontrado: informações da pilha não disponíveis

  • 500- Erro interno do servidor

GET /cenários

Description

A GET /scenarios operação permite que você recupere uma lista de cenários de teste.

Resposta

Name (Nome) Description

data

Uma lista de cenários, incluindo ID, nome, descrição, status, tempo de execução, tags, total de execuções e última execução de cada teste

POST /cenários

Description

A POST /scenarios operação permite criar ou agendar um cenário de teste.

Corpo da solicitação

Name (Nome) Description

testName

O nome do teste

testDescription

A descrição do teste

testTaskConfigs

Um objeto que especifica concurrency (o número de execuções paralelas), taskCount (o número de tarefas necessárias para executar um teste) e region para o cenário

testScenario

A definição do teste, incluindo simultaneidade, horário do teste, host e método para o teste

testType

O tipo de teste (por exemplo,simple,jmeter)

fileType

O tipo de arquivo de upload (por exemplo,none,script,zip)

tags

Uma matriz de sequências de caracteres para categorizar os testes. Campo opcional com um comprimento máximo de 5 (por exemplo,["blue", "3.0", "critical"])

scheduleDate

A data para realizar um teste. Fornecido somente ao agendar um teste (por exemplo,2021-02-28)

scheduleTime

A hora de fazer um teste. Fornecido somente ao agendar um teste (por exemplo,21:07)

scheduleStep

A etapa do processo de agendamento. Fornecido somente se estiver agendando um teste recorrente. (As etapas disponíveis incluem create estart)

cronvalue

O valor cron para personalizar o agendamento recorrente. Se usado, omita ScheduleDate e ScheduleTime.

cronExpiryDate

Data obrigatória para que o cron expire e não seja executado indefinidamente.

recurrence

A recorrência de um teste agendado. Fornecido somente ao agendar um teste recorrente (por exemplo,,daily, weeklybiweekly, ou) monthly

Resposta

Name (Nome) Description

testId

O ID exclusivo do teste

testName

O nome do teste

status

O status do teste

OPÇÕES/CENÁRIOS

Description

A OPTIONS /scenarios operação fornece uma resposta para a solicitação com os cabeçalhos de resposta CORS corretos.

Resposta

Name (Nome) Description

testId

O ID exclusivo do teste

testName

O nome do teste

status

O status do teste

GET /scenarios/ {testId}

Description

A GET /scenarios/{testId} operação permite que você recupere os detalhes de um cenário de teste específico.

Parâmetros de solicitação

testId
  • O ID exclusivo do teste

    Tipo: string

    Obrigatório: Sim

latest
  • Parâmetro de consulta para retornar somente a última execução do teste. O padrão é true

    Tipo: booliano

    Obrigatório: não

history
  • Parâmetro de consulta para incluir o histórico de execução do teste na resposta. O padrão é true. Defina como false para excluir o histórico

    Tipo: booliano

    Obrigatório: não

Resposta

Name (Nome) Description

testId

O ID exclusivo do teste

testName

O nome do teste

testDescription

A descrição do teste

testType

O tipo de teste que é executado (por exemplo,simple,jmeter)

fileType

O tipo de arquivo que é carregado (por exemplo,none,script,zip)

tags

Uma matriz de sequências de caracteres para categorizar testes

status

O status do teste

startTime

A hora e a data em que o último teste começou

endTime

A hora e a data em que o último teste terminou

testScenario

A definição do teste, incluindo simultaneidade, horário do teste, host e método para o teste

taskCount

O número de tarefas necessárias para executar o teste

taskIds

Uma lista de tarefas IDs para executar testes

results

Os resultados finais do teste

history

Uma lista dos resultados finais de testes anteriores (excluídos quandohistory=false)

totalRuns

O número total de execuções de teste para esse cenário

lastRun

A data e hora da última execução do teste

errorReason

Uma mensagem de erro gerada quando ocorre um erro

nextRun

A próxima execução programada (por exemplo,2017-04-22 17:18:00)

scheduleRecurrence

A recorrência do teste (por exemplo,,daily, weeklybiweekly,monthly)

POST /scenarios/ {testId}

Description

A POST /scenarios/{testId} operação permite que você cancele um cenário de teste específico.

Parâmetro de solicitação

testId
  • O ID exclusivo do teste

    Tipo: string

    Obrigatório: Sim

Resposta

Name (Nome) Description

status

O status do teste

EXCLUIR /scenarios/ {testId}

Description

A DELETE /scenarios/{testId} operação permite que você exclua todos os dados relacionados a um cenário de teste específico.

Parâmetro de solicitação

testId
  • O ID exclusivo do teste

    Tipo: string

    Obrigatório: Sim

Resposta

Name (Nome) Description

status

O status do teste

OPÇÕES /cenários/ {testId}

Description

A OPTIONS /scenarios/{testId} operação fornece uma resposta para a solicitação com os cabeçalhos de resposta CORS corretos.

Resposta

Name (Nome) Description

testId

O ID exclusivo do teste

testName

O nome do teste

testDescription

A descrição do teste

testType

O tipo de teste que é executado (por exemplo,simple,jmeter)

fileType

O tipo de arquivo que é carregado (por exemplo,none,script,zip)

status

O status do teste

startTime

A hora e a data em que o último teste começou

endTime

A hora e a data em que o último teste terminou

testScenario

A definição do teste, incluindo simultaneidade, horário do teste, host e método para o teste

taskCount

O número de tarefas necessárias para executar o teste

taskIds

Uma lista de tarefas IDs para executar testes

results

Os resultados finais do teste

history

Uma lista dos resultados finais dos testes anteriores

errorReason

Uma mensagem de erro gerada quando ocorre um erro

GET /scenarios/ {testId} /testruns

Description

A GET /scenarios/{testId}/testruns operação recupera a execução do teste IDs para um cenário de teste específico, opcionalmente filtrada por intervalo de tempo. Quandolatest=true, retorna somente a única execução de teste mais recente.

Parâmetros de solicitação

testId
  • O ID do cenário de teste

    Tipo: string

    Obrigatório: Sim

latest
  • Retorna somente a ID de execução de teste mais recente

    Tipo: booliano

    Padrão: false

    Exigido: Não

start_timestamp
  • Registro de data e hora ISO 8601 para filtrar as execuções de teste (inclusive). Por exemplo, 2024-01-01T00:00:00Z.

    Tipo: Cadeia de caracteres (formato de data e hora)

    Obrigatório: Não

end_timestamp
  • Registro de data e hora ISO 8601 para filtrar as execuções de teste até (inclusive). Por exemplo, 2024-12-31T23:59:59Z.

    Tipo: Cadeia de caracteres (formato de data e hora)

    Obrigatório: Não

limit
  • Número máximo de execuções de teste a serem retornadas (ignorado quandolatest=true)

    Tipo: Inteiro (mínimo: 1, máximo: 100)

    Padrão: 20

    Exigido: Não

next_token
  • Token de paginação da resposta anterior para obter a próxima página

    Tipo: String

    Obrigatório: Não

Resposta

200 - Sucesso

Name (Nome) Description

testRuns

Matriz de objetos de execução de teste, cada um contendo testRunId (string) e startTime (data e hora ISO 8601)

pagination

Objeto contendo limit (inteiro) e next_token (string ou nulo). O token é nulo se não houver mais resultados

Respostas de erro

  • 400- Formato ou parâmetros de carimbo de data/hora inválidos

  • 404- Cenário de teste não encontrado

  • 500- Erro interno do servidor

Exemplo de uso

  • Somente a última execução do teste: GET /scenarios/test123/testruns?latest=true

  • Último dentro do intervalo de tempo: GET /scenarios/test123/testruns?latest=true&start_timestamp=2024-01-01T00:00:00Z

  • Solicitação da próxima página: GET /scenarios/test123/testruns?limit=20&next_token=eyJ0ZXN0SWQiOiJzZVFVeTEyTEtMIiwic3RhcnRUaW1lIjoiMjAyNC0wMS0xM1QxNjo0NTowMFoifQ==

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

Description

A GET /scenarios/{testId}/testruns/{testRunId} operação recupera resultados e métricas completos para uma execução de teste específica. Opcionalmente, omita os resultados do histórico history=false para uma resposta mais rápida.

Parâmetros de solicitação

testId
  • O ID do cenário de teste

    Tipo: string

    Obrigatório: Sim

testRunId
  • O ID específico da execução do teste

    Tipo: string

    Obrigatório: Sim

history
  • Inclua uma matriz de histórico na resposta. Defina como false para omitir o histórico para uma resposta mais rápida

    Tipo: booliano

    Padrão: true

    Exigido: Não

Resposta

200 - Sucesso

Name (Nome) Description

testId

O ID exclusivo do teste (por exemplo,seQUy12LKL)

testRunId

O ID específico da execução do teste (por exemplo,2DEwHItEne)

testDescription

Descrição do teste de carga

testType

O tipo de teste (por exemplo,simple,jmeter)

status

O status da execução do teste:complete,running,failed, ou cancelled

startTime

A hora e a data em que o teste começou (por exemplo,2025-09-09 21:01:00)

endTime

A hora e a data em que o teste terminou (por exemplo,2025-09-09 21:18:29)

succPercent

Porcentagem de sucesso (por exemplo,100.00)

testTaskConfigs

Matriz de objetos de configuração de tarefas contendo regiontaskCount, e concurrency

completeTasks

Regiões de mapeamento de objetos para contagens de tarefas concluídas

results

Objeto contendo métricas detalhadas, incluindo avg_lt (latência média), percentis (p0_0,,p50_0,p90_0,p95_0,p100_0) p99_0p99_9, avg_rt (tempo médio de resposta), (tempo médio de conexão), avg_ct stdev_rt (tempo de resposta com desvio padrão),,concurrency, (contagem de sucesso)throughput, succ (contagem de falhas),fail,, bytes testDurationmetricS3Location, rc (matriz de códigos de resposta) e matriz labels

testScenario

Objeto contendo configuração de teste comexecution,reporting, e scenarios propriedades

history

Conjunto de resultados históricos de testes (excluídos quandohistory=false)

Respostas de erro

  • 400- TestId inválido ou testRunId

  • 404- Execução de teste não encontrada

  • 500- Erro interno do servidor

EXCLUIR /scenarios/ {testId} /testruns/ {} testRunId

Description

A DELETE /scenarios/{testId}/testruns/{testRunId} operação exclui todos os dados e artefatos relacionados a uma execução de teste específica. Os dados da execução do teste são removidos do DynamoDB, enquanto os dados reais do teste no S3 permanecem inalterados.

Parâmetros de solicitação

testId
  • O ID do cenário de teste

    Tipo: string

    Obrigatório: Sim

testRunId
  • O ID de execução de teste específico a ser excluído

    Tipo: string

    Obrigatório: Sim

Resposta

204 - Sucesso

A execução do teste foi excluída com sucesso (nenhum conteúdo retornado)

Respostas de erro

  • 400- TestId inválido ou testRunId

  • 403- Proibido: permissões insuficientes para excluir a execução do teste

  • 404- Execução de teste não encontrada

  • 409- Conflito: o teste está sendo executado no momento e não pode ser excluído

  • 500- Erro interno do servidor

GET /scenarios/ {testId} /linha de base

Description

A GET /scenarios/{testId}/baseline operação recupera o resultado do teste de linha de base designado para um cenário. Retorna o ID da execução do teste de linha de base ou os resultados completos da linha de base, dependendo do data parâmetro.

Parâmetros de solicitação

testId
  • O ID do cenário de teste

    Tipo: string

    Obrigatório: Sim

data
  • Retorne os dados completos da execução do teste de linha de base setrue, caso contrário, apenas o testRunId

    Tipo: booliano

    Padrão: false

    Exigido: Não

Resposta

200 - Sucesso

Quando data=false (padrão):

Name (Nome) Description

testId

O ID do cenário de teste (por exemplo,seQUy12LKL)

baselineTestRunId

O ID de execução do teste de linha de base (por exemplo,2DEwHItEne)

Quandodata=true:

Name (Nome) Description

testId

O ID do cenário de teste (por exemplo,seQUy12LKL)

baselineTestRunId

O ID de execução do teste de linha de base (por exemplo,2DEwHItEne)

baselineData

Objeto completo dos resultados da execução do teste (mesma estrutura queGET /scenarios/{testId}/testruns/{testRunId})

Respostas de erro

  • 400- Parâmetro testId inválido

  • 404- Cenário de teste não encontrado ou nenhuma linha de base definida

  • 500- Erro interno do servidor

PUT /scenarios/ {testId} /linha de base

Description

A PUT /scenarios/{testId}/baseline operação designa uma execução de teste específica como linha de base para comparação de desempenho. Somente uma linha de base pode ser definida por cenário.

Parâmetros de solicitação

testId
  • O ID do cenário de teste

    Tipo: string

    Obrigatório: Sim

Corpo da solicitação

Name (Nome) Description

testRunId

O ID da execução do teste a ser definido como linha de base (por exemplo,2DEwHItEne)

Resposta

200 - Sucesso

Name (Nome) Description

message

Mensagem de confirmação (por exemplo,Baseline set successfully)

testId

O ID do cenário de teste (por exemplo,seQUy12LKL)

baselineTestRunId

O ID de execução do teste de linha de base que foi definido (por exemplo,2DEwHItEne)

Respostas de erro

  • 400- TestId inválido ou testRunId

  • 404- Cenário de teste ou execução de teste não encontrado

  • 409- Conflito: a execução do teste não pode ser definida como linha de base (por exemplo, teste com falha)

  • 500- Erro interno do servidor

EXCLUIR /scenarios/ {testId} /baseline

Description

A DELETE /scenarios/{testId}/baseline operação limpa o valor da linha de base de um cenário definindo-o como uma string vazia.

Parâmetros de solicitação

testId
  • O ID do cenário de teste

    Tipo: string

    Obrigatório: Sim

Resposta

204 - Sucesso

Linha de base eliminada com sucesso (nenhum conteúdo retornado)

Respostas de erro

  • 400- TestId inválido

  • 500- Erro interno do servidor

GET /tasks

Description

A GET /tasks operação permite que você recupere uma lista de tarefas em execução do Amazon Elastic Container Service (Amazon ECS).

Resposta

Name (Nome) Description

tasks

Uma lista de tarefas IDs para executar testes

OPÇÕES/tarefas

Description

A operação de OPTIONS /tasks tarefas fornece uma resposta para a solicitação com os cabeçalhos de resposta CORS corretos.

Resposta

Name (Nome) Description

taskIds

Uma lista de tarefas IDs para executar testes

GET /regiões

Description

A GET /regions operação permite que você recupere as informações de recursos regionais necessárias para executar um teste nessa região.

Resposta

Name (Nome) Description

testId

O ID da região

ecsCloudWatchLogGroup

O nome do grupo de CloudWatch registros da Amazon para as tarefas do Amazon Fargate na região

region

A região na qual existem os recursos na tabela

subnetA

O ID de uma das sub-redes na região

subnetB

O ID de uma das sub-redes na região

taskCluster

O nome do cluster AWS Fargate na região

taskDefinition

O ARN da definição da tarefa na região

taskImage

O nome da imagem da tarefa na Região

taskSecurityGroup

O ID do grupo de segurança na região

OPÇÕES/REGIÕES

Description

A OPTIONS /regions operação fornece uma resposta para a solicitação com os cabeçalhos de resposta CORS corretos.

Resposta

Name (Nome) Description

testId

O ID da região

ecsCloudWatchLogGroup

O nome do grupo de CloudWatch registros da Amazon para as tarefas do Amazon Fargate na região

region

A região na qual existem os recursos na tabela

subnetA

O ID de uma das sub-redes na região

subnetB

O ID de uma das sub-redes na região

taskCluster

O nome do cluster AWS Fargate na região

taskDefinition

O ARN da definição da tarefa na região

taskImage

O nome da imagem da tarefa na Região

taskSecurityGroup

O ID do grupo de segurança na região