API di test di carico distribuita - Test di carico distribuito su AWS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

API di test di carico distribuita

Questa soluzione di test di carico consente di esporre i dati dei risultati del test in modo sicuro. L'API funge da «porta d'ingresso» per l'accesso ai dati di test archiviati in Amazon DynamoDB. Puoi anche utilizzare il APIs per accedere a qualsiasi funzionalità estesa incorporata nella soluzione.

Questa soluzione utilizza un pool di utenti Amazon Cognito integrato con Amazon API Gateway per l'identificazione e l'autorizzazione. Quando un pool di utenti viene utilizzato con l'API, i client possono chiamare i metodi attivati dal pool di utenti solo dopo aver fornito un token di identità valido.

Per ulteriori informazioni sull'esecuzione dei test direttamente tramite l'API, consulta Signing Requests nella documentazione di riferimento dell'API REST di Amazon API Gateway.

Le seguenti operazioni sono disponibili nell'API della soluzione.

Nota

Per ulteriori informazioni testScenario e altri parametri, consulta gli scenari e gli esempi di payload nel GitHub repository.

Informazioni sullo stack

Scenari

Esecuzioni di test

Linea di base

Attività

Regioni

OTTIENI /stack-info

Description

L'GET /stack-infooperazione recupera informazioni sullo stack distribuito, tra cui l'ora di creazione, la regione e la versione. Questo endpoint viene utilizzato dal front-end.

Risposta

200 - Successo

Nome Description

created_time

Timestamp ISO 8601 al momento della creazione dello stack (ad esempio,) 2025-09-09T19:40:22Z

region

Regione AWS in cui viene distribuito lo stack (ad esempio,) us-east-1

version

Versione della soluzione distribuita (ad esempio,) v4.0.0

Risposte di errore

  • 403- Proibito: autorizzazioni insufficienti per accedere alle informazioni sullo stack

  • 404- Non trovato: informazioni sullo stack non disponibili

  • 500- Errore interno del server

GET /scenarios

Description

L'GET /scenariosoperazione consente di recuperare un elenco di scenari di test.

Risposta

Nome Description

data

Un elenco di scenari che include l'ID, il nome, la descrizione, lo stato, il tempo di esecuzione, i tag, le esecuzioni totali e l'ultima esecuzione per ogni test

POST /scenari

Description

L'POST /scenariosoperazione consente di creare o pianificare uno scenario di test.

Corpo della richiesta

Nome Description

testName

Il nome del test

testDescription

La descrizione del test

testTaskConfigs

Un oggetto che specifica concurrency (il numero di esecuzioni parallele), taskCount (il numero di attività necessarie region per eseguire un test) e lo scenario

testScenario

La definizione del test che include concorrenza, tempo di test, host e metodo per il test

testType

Il tipo di test (ad esempiosimple,jmeter)

fileType

Il tipo di file da caricare (ad esempionone,script,zip)

tags

Una serie di stringhe per la categorizzazione dei test. Campo opzionale con una lunghezza massima di 5 (ad esempio,) ["blue", "3.0", "critical"]

scheduleDate

La data di esecuzione di un test. Fornito solo se si pianifica un test (ad esempio,2021-02-28)

scheduleTime

Il tempo necessario per eseguire un test. Fornito solo se si pianifica un test (ad esempio,21:07)

scheduleStep

Fase del processo di pianificazione. Fornito solo se si pianifica un test ricorrente. (I passaggi disponibili includono e) create start

cronvalue

Il valore cron per personalizzare la pianificazione ricorrente. Se usato, ometti ScheduleDate e ScheduleTime.

cronExpiryDate

Data obbligatoria in modo che il cron scada e non venga eseguito all'infinito.

recurrence

La ricorrenza di un test programmato. Fornito solo se si pianifica un test ricorrente (ad esempio,,, daily o) weekly biweekly monthly

Risposta

Nome Description

testId

L'ID univoco del test

testName

Il nome del test

status

Lo stato del test

OPZIONI/scenari

Description

L'OPTIONS /scenariosoperazione fornisce una risposta alla richiesta con le intestazioni di risposta CORS corrette.

Risposta

Nome Description

testId

L'ID univoco del test

testName

Il nome del test

status

Lo stato del test

GET /scenarios/ {testID}

Description

L'GET /scenarios/{testId}operazione consente di recuperare i dettagli di uno scenario di test specifico.

Parametri della richiesta

testId
  • L'ID univoco del test

    Tipo: stringa

    Campo obbligatorio: sì

latest
  • Parametro di query per restituire solo l'ultima esecuzione del test. L'impostazione predefinita è true

    Tipo: Booleano

    Campo obbligatorio: no

history
  • Parametro di interrogazione per includere la cronologia dei test eseguiti nella risposta. Il valore predefinito è true. Imposta su false per escludere la cronologia

    Tipo: Booleano

    Campo obbligatorio: no

Risposta

Nome Description

testId

L'ID univoco del test

testName

Il nome del test

testDescription

La descrizione del test

testType

Il tipo di test che viene eseguito (ad esempiosimple,jmeter)

fileType

Il tipo di file che viene caricato (ad esempionone,script,zip)

tags

Una serie di stringhe per la categorizzazione dei test

status

Lo stato del test

startTime

L'ora e la data di inizio dell'ultimo test

endTime

L'ora e la data in cui è terminato l'ultimo test

testScenario

La definizione del test che include concorrenza, ora del test, host e metodo per il test

taskCount

Il numero di attività necessarie per eseguire il test

taskIds

Un elenco di attività IDs per l'esecuzione dei test

results

I risultati finali del test

history

Un elenco dei risultati finali dei test precedenti (escluso quandohistory=false)

totalRuns

Il numero totale di test eseguiti per questo scenario

lastRun

Il timestamp dell'ultima esecuzione del test

errorReason

Un messaggio di errore generato quando si verifica un errore

nextRun

La prossima esecuzione pianificata (ad esempio,2017-04-22 17:18:00)

scheduleRecurrence

La ricorrenza del test (ad esempio,,, dailyweekly,biweekly) monthly

POST /scenarios/ {testID}

Description

L'POST /scenarios/{testId}operazione consente di annullare uno scenario di test specifico.

Parametro di richiesta

testId
  • L'ID univoco del test

    Tipo: stringa

    Campo obbligatorio: sì

Risposta

Nome Description

status

Lo stato del test

DELETE /scenarios/ {testID}

Description

L'DELETE /scenarios/{testId}operazione consente di eliminare tutti i dati relativi a uno scenario di test specifico.

Parametro di richiesta

testId
  • L'ID univoco del test

    Tipo: stringa

    Campo obbligatorio: sì

Risposta

Nome Description

status

Lo stato del test

OPZIONI /scenarios/ {testID}

Description

L'OPTIONS /scenarios/{testId}operazione fornisce una risposta alla richiesta con le intestazioni di risposta CORS corrette.

Risposta

Nome Description

testId

L'ID univoco del test

testName

Il nome del test

testDescription

La descrizione del test

testType

Il tipo di test che viene eseguito (ad esempiosimple,jmeter)

fileType

Il tipo di file che viene caricato (ad esempionone,script,zip)

status

Lo stato del test

startTime

L'ora e la data di inizio dell'ultimo test

endTime

L'ora e la data in cui è terminato l'ultimo test

testScenario

La definizione del test che include concorrenza, ora del test, host e metodo per il test

taskCount

Il numero di attività necessarie per eseguire il test

taskIds

Un elenco di attività IDs per l'esecuzione dei test

results

I risultati finali del test

history

Un elenco dei risultati finali dei test precedenti

errorReason

Un messaggio di errore generato quando si verifica un errore

GET /scenarios/ {testID} /testruns

Description

L'GET /scenarios/{testId}/testrunsoperazione recupera l'esecuzione del test per uno scenario di test specifico, IDs facoltativamente filtrato per intervallo di tempo. Whenlatest=true, restituisce solo la singola esecuzione del test più recente.

Parametri della richiesta

testId
  • L'ID dello scenario di test

    Tipo: stringa

    Campo obbligatorio: sì

latest
  • Restituisce solo l'ID di esecuzione del test più recente

    Tipo: Booleano

    Impostazione predefinita: false

    Campo obbligatorio: no

start_timestamp
  • Timestamp ISO 8601 da cui filtrare le esecuzioni di test (incluso). Ad esempio, 2024-01-01T00:00:00Z

    Tipo: Stringa (formato data-ora)

    Campo obbligatorio: no

end_timestamp
  • Il timestamp ISO 8601 per filtrare i test viene eseguito fino a (incluso). Ad esempio, 2024-12-31T23:59:59Z

    Tipo: Stringa (formato data-ora)

    Campo obbligatorio: no

limit
  • Numero massimo di esecuzioni di test da restituire (ignorato quando) latest=true

    Tipo: numero intero (minimo: 1, massimo: 100)

    Impostazione predefinita: 20

    Campo obbligatorio: no

next_token
  • Token di impaginazione dalla risposta precedente alla pagina successiva

    ▬Tipo: stringa

    Campo obbligatorio: no

Risposta

200 - Successo

Nome Description

testRuns

Serie di oggetti di esecuzione del test, ciascuno contenente testRunId (stringa) e startTime (data-ora ISO 8601)

pagination

Oggetto contenente limit (numero intero) e next_token (stringa o null). Il token è nullo se non ci sono altri risultati

Risposte di errore

  • 400- Formato o parametri del timestamp non validi

  • 404- Scenario di test non trovato

  • 500- Errore interno del server

Esempio di utilizzo

  • Solo l'ultimo test eseguito: GET /scenarios/test123/testruns?latest=true

  • Ultimo entro l'intervallo di tempo: GET /scenarios/test123/testruns?latest=true&start_timestamp=2024-01-01T00:00:00Z

  • Richiesta di pagina successiva: GET /scenarios/test123/testruns?limit=20&next_token=eyJ0ZXN0SWQiOiJzZVFVeTEyTEtMIiwic3RhcnRUaW1lIjoiMjAyNC0wMS0xM1QxNjo0NTowMFoifQ==

GET /scenarios/ {testID} /testruns/ {} testRunId

Description

L'GET /scenarios/{testId}/testruns/{testRunId}operazione recupera i risultati e le metriche completi per una specifica esecuzione di test. Facoltativamente, ometti i risultati della cronologia con history=false per una risposta più rapida.

Parametri della richiesta

testId
  • L'ID dello scenario di test

    Tipo: stringa

    Campo obbligatorio: sì

testRunId
  • L'ID specifico dell'esecuzione del test

    Tipo: stringa

    Campo obbligatorio: sì

history
  • Include l'array di cronologia in risposta. Imposta su false per omettere la cronologia per una risposta più rapida

    Tipo: Booleano

    Impostazione predefinita: true

    Campo obbligatorio: no

Risposta

200 - Successo

Nome Description

testId

L'ID univoco del test (ad esempio,seQUy12LKL)

testRunId

L'ID specifico dell'esecuzione del test (ad esempio,2DEwHItEne)

testDescription

Descrizione del test di carico

testType

Il tipo di test (ad esempiosimple,jmeter)

status

Lo stato dell'esecuzione del test: completerunning,failed, o cancelled

startTime

L'ora e la data di inizio del test (ad esempio,2025-09-09 21:01:00)

endTime

L'ora e la data in cui è terminato il test (ad esempio,2025-09-09 21:18:29)

succPercent

Percentuale di successo (ad esempio,100.00)

testTaskConfigs

Matrice di oggetti di configurazione delle attività contenenti regiontaskCount, e concurrency

completeTasks

Le regioni di mappatura degli oggetti in base al numero di attività completate

results

Oggetto contenente metriche dettagliate tra cui avg_lt (latenza media), percentili (p0_0,,p50_0,p90_0,p95_0,p100_0) p99_0p99_9, avg_rt (tempo di risposta medio), avg_ct (tempo medio di connessione), stdev_rt (tempo di risposta in deviazione standard),concurrency, (numero di successi)throughput, succ (conteggio errori),, bytes testDurationmetricS3Location, fail rc (array di codici di risposta) e array labels

testScenario

Oggetto contenente la configurazione di test con execution e le proprietà reporting scenarios

history

Matrice di risultati storici dei test (escluso quandohistory=false)

Risposte di errore

  • 400- TestID non valido o testRunId

  • 404- Esecuzione del test non trovata

  • 500- Errore interno del server

ELIMINA /scenarios/ {testID} /testruns/ {} testRunId

Description

L'DELETE /scenarios/{testId}/testruns/{testRunId}operazione elimina tutti i dati e gli artefatti relativi a una specifica esecuzione di test. I dati di esecuzione del test vengono rimossi da DynamoDB, mentre i dati di test effettivi in S3 rimangono invariati.

Parametri della richiesta

testId
  • L'ID dello scenario di test

    Tipo: stringa

    Campo obbligatorio: sì

testRunId
  • L'ID di esecuzione del test specifico da eliminare

    Tipo: stringa

    Campo obbligatorio: sì

Risposta

204 - Successo

Esecuzione del test eliminata con successo (nessun contenuto restituito)

Risposte di errore

  • 400- TestID non valido o testRunId

  • 403- Proibito: autorizzazioni insufficienti per eliminare l'esecuzione del test

  • 404- Esecuzione del test non trovata

  • 409- Conflitto: l'esecuzione del test è attualmente in esecuzione e non può essere eliminata

  • 500- Errore interno del server

GET /scenarios/ {testID} /baseline

Description

L'GET /scenarios/{testId}/baselineoperazione recupera il risultato del test di base designato per uno scenario. Restituisce l'ID di esecuzione del test di base o i risultati di base completi a seconda del parametro. data

Parametri della richiesta

testId
  • L'ID dello scenario di test

    Tipo: stringa

    Campo obbligatorio: sì

data
  • Restituisce i dati completi di esecuzione del test di base setrue, altrimenti solo testRunId

    Tipo: Booleano

    Impostazione predefinita: false

    Campo obbligatorio: no

Risposta

200 - Successo

Quando data=false (impostazione predefinita):

Nome Description

testId

L'ID dello scenario di test (ad esempio,seQUy12LKL)

baselineTestRunId

L'ID di esecuzione del test di base (ad esempio,2DEwHItEne)

Quandodata=true:

Nome Description

testId

L'ID dello scenario di test (ad esempio,seQUy12LKL)

baselineTestRunId

L'ID di esecuzione del test di base (ad esempio,2DEwHItEne)

baselineData

Oggetto completo dei risultati dell'esecuzione del test (stessa GET /scenarios/{testId}/testruns/{testRunId} struttura di)

Risposte di errore

  • 400- Parametro TestID non valido

  • 404- Scenario di test non trovato o nessuna linea di base impostata

  • 500- Errore interno del server

PUT /scenarios/ {testID} /baseline

Description

L'PUT /scenarios/{testId}/baselineoperazione designa un test specifico come base per il confronto delle prestazioni. È possibile impostare una sola linea di base per scenario.

Parametri della richiesta

testId
  • L'ID dello scenario di test

    Tipo: stringa

    Campo obbligatorio: sì

Corpo della richiesta

Nome Description

testRunId

L'ID di esecuzione del test da impostare come riferimento (ad esempio,2DEwHItEne)

Risposta

200 - Successo

Nome Description

message

Messaggio di conferma (ad esempio,Baseline set successfully)

testId

L'ID dello scenario di test (ad esempio,seQUy12LKL)

baselineTestRunId

L'ID di esecuzione del test di base che è stato impostato (ad esempio,2DEwHItEne)

Risposte di errore

  • 400- TestID non valido o testRunId

  • 404- Scenario di test o esecuzione del test non trovati

  • 409- Conflitto: l'esecuzione del test non può essere impostata come base (ad esempio, test fallito)

  • 500- Errore interno del server

DELETE /scenarios/ {testID} /baseline

Description

L'DELETE /scenarios/{testId}/baselineoperazione cancella il valore di base per uno scenario impostandolo su una stringa vuota.

Parametri della richiesta

testId
  • L'ID dello scenario di test

    Tipo: stringa

    Campo obbligatorio: sì

Risposta

204 - Successo

Baseline cancellata con successo (nessun contenuto restituito)

Risposte di errore

  • 400- TestID non valido

  • 500- Errore interno del server

GET /tasks

Description

L'GET /tasksoperazione consente di recuperare un elenco di attività Amazon Elastic Container Service (Amazon ECS) in esecuzione.

Risposta

Nome Description

tasks

Un elenco di attività IDs per l'esecuzione dei test

OPZIONI/task

Description

L'operazione OPTIONS /tasks tasks fornisce una risposta alla richiesta con le intestazioni di risposta CORS corrette.

Risposta

Nome Description

taskIds

Un elenco di attività IDs per l'esecuzione dei test

GET /regions

Description

L'GET /regionsoperazione consente di recuperare le informazioni sulle risorse regionali necessarie per eseguire un test in quella regione.

Risposta

Nome Description

testId

L'ID della regione

ecsCloudWatchLogGroup

Il nome del gruppo di CloudWatch log di Amazon per le attività di Amazon Fargate nella regione

region

La regione in cui esistono le risorse della tabella

subnetA

L'ID di una delle sottoreti della regione

subnetB

L'ID di una delle sottoreti nella regione

taskCluster

Il nome del cluster AWS Fargate nella regione

taskDefinition

L'ARN della definizione dell'attività nella regione

taskImage

Il nome dell'immagine dell'attività nella regione

taskSecurityGroup

L'ID del gruppo di sicurezza nella regione

OPZIONI/regioni

Description

L'OPTIONS /regionsoperazione fornisce una risposta alla richiesta con le intestazioni di risposta CORS corrette.

Risposta

Nome Description

testId

L'ID della regione

ecsCloudWatchLogGroup

Il nome del gruppo di CloudWatch log di Amazon per le attività di Amazon Fargate nella regione

region

La regione in cui esistono le risorse della tabella

subnetA

L'ID di una delle sottoreti della regione

subnetB

L'ID di una delle sottoreti nella regione

taskCluster

Il nome del cluster AWS Fargate nella regione

taskDefinition

L'ARN della definizione dell'attività nella regione

taskImage

Il nome dell'immagine dell'attività nella regione

taskSecurityGroup

L'ID del gruppo di sicurezza nella regione