View a markdown version of this page

API di test del carico distribuito - 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 del carico distribuito

Questa soluzione di test di carico consente di esporre i dati dei risultati dei 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 le API per accedere a qualsiasi funzionalità estesa integrata 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 la sezione 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 l'esempio 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 ora di creazione, regione e 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 è distribuito lo stack (ad esempio,) us-east-1

version

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

Risposte agli errori

  • 403- Vietato: 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 per eseguire un test) e region lo scenario

testScenario

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

nativeRunMode

Un oggetto che seleziona la modalità Traffic Shape. Omettila per usare la modalità Standard. Includilo, con una durata di maxTestDurationSeconds sicurezza fino a 24 ore, per selezionare la modalità nativa e lasciare che lo script caricato controlli il caricamento. Solo i test basati su script supportano la modalità nativa. Per ulteriori informazioni, consulta le modalità Modalità Traffic Shape Traffic shape.

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 classificare i test. Campo opzionale con una lunghezza massima di 5 (ad esempio,) ["blue", "3.0", "critical"]

scheduleDate

La data in cui eseguire un test. Fornita 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 a tempo indeterminato.

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

    Obbligatorio: sì

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

    Tipo: Booleano

    Obbligatorio: no

history
  • Parametro di interrogazione per includere la cronologia dell'esecuzione del test nella risposta. Il valore predefinito è true. Impostato su false per escludere la cronologia

    Tipo: Booleano

    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 esempio,simple,jmeter)

fileType

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

tags

Una serie di stringhe per classificare i 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, inclusi concorrenza, ora del test, host e metodo per il test

taskCount

Il numero di attività necessarie per eseguire il test

taskIds

Un elenco di ID delle attività per l'esecuzione dei test

results

I risultati finali del test

history

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

totalRuns

Il numero totale di test eseguiti per questo scenario

lastRun

La data e l'ora dell'ultima esecuzione del test

errorReason

Un messaggio di errore generato quando si verifica un errore

nextRun

La prossima corsa 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

    Obbligatorio: sì

Risposta

Nome Description

status

Lo stato del test

ELIMINA /scenarios/ {testId}

Description

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

Parametro di richiesta

testId
  • L'ID univoco del test

    Tipo: stringa

    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 esempio,simple,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, inclusi concorrenza, ora del test, host e metodo per il test

taskCount

Il numero di attività necessarie per eseguire il test

taskIds

Un elenco di ID delle attività 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 gli ID di esecuzione del test per uno scenario di test specifico, filtrati facoltativamente per intervallo di tempo. Quandolatest=true, restituisce solo la singola esecuzione di test più recente.

Parametri della richiesta

testId
  • L'ID dello scenario di test

    Tipo: stringa

    Obbligatorio: sì

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

    Tipo: Booleano

    Impostazione predefinita: false

    Obbligatorio: no

start_timestamp
  • Timestamp ISO 8601 da cui filtrare i test (inclusi). Ad esempio, 2024-01-01T00:00:00Z

    Tipo: stringa (formato data-ora)

    Obbligatorio: no

end_timestamp
  • Timestamp ISO 8601 per filtrare le esecuzioni dei test fino a (incluso). Ad esempio, 2024-12-31T23:59:59Z

    Tipo: stringa (formato data-ora)

    Obbligatorio: no

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

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

    Impostazione predefinita: 20

    Obbligatorio: no

next_token
  • Token di impaginazione derivante dalla risposta precedente per accedere alla pagina successiva

    ▬Tipo: stringa

    Obbligatorio: no

Risposta

200 - Successo

Nome Description

testRuns

Matrice di oggetti eseguiti nel 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 agli errori

  • 400- Formato o parametri del timestamp non validi

  • 404- Scenario di test non trovato

  • 500- Errore interno del server

Esempio di utilizzo

  • Solo l'ultima esecuzione del test: GET /scenarios/test123/testruns?latest=true

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

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

GET /scenarios/ {testId} /testruns/ {test} RunId

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

    Obbligatorio: sì

testRunId
  • L'ID specifico dell'esecuzione del test

    Tipo: stringa

    Obbligatorio: sì

history
  • Includi l'array della cronologia nella risposta. Imposta per false omettere la cronologia per una risposta più rapida

    Tipo: Booleano

    Impostazione predefinita: true

    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 di fine del 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à contenentiregion,taskCount, e concurrency

completeTasks

La mappatura degli oggetti tra le regioni e i conteggi delle 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 medio di risposta), (tempo medio di connessione), avg_ct (tempo di risposta in deviazione standard),,, (numero di successi) concurrencythroughput, succ (numero di errori),,, bytes testDurationmetricS3Location, fail rc (matrice di codici di risposta) e array stdev_rt labels

testScenario

Oggetto contenente la configurazione di test conexecution, e le proprietà reporting scenarios

history

Serie di risultati storici dei test (esclusi quandohistory=false)

Risposte agli errori

  • 400- TestID o test non valido RunId

  • 404- Esecuzione del test non trovata

  • 500- Errore interno del server

ELIMINA /scenarios/ {testId} /testruns/ {test} RunId

Description

L'DELETE /scenarios/{testId}/testruns/{testRunId}operazione elimina tutti i dati e gli artefatti relativi a una specifica esecuzione del 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

    Obbligatorio: sì

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

    Tipo: stringa

    Obbligatorio: sì

Risposta

204 - Successo

Esecuzione del test eliminata con successo (nessun contenuto restituito)

Risposte agli errori

  • 400- TestID o test non valido RunId

  • 403- Vietato: 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 riferimento 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

    Obbligatorio: sì

data
  • Restituisce i dati di base completi dell'esecuzione del test setrue, altrimenti si tratta solo del test RunId

    Tipo: Booleano

    Impostazione predefinita: false

    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 base dell'esecuzione del test (ad esempio,2DEwHItEne)

Quandodata=true:

Nome Description

testId

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

baselineTestRunId

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

baselineData

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

Risposte agli errori

  • 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 indica una specifica esecuzione di test 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

    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 base dell'esecuzione del test impostato (ad esempio,2DEwHItEne)

Risposte agli errori

  • 400- TestID o test non valido RunId

  • 404- Scenario o esecuzione del test non trovati

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

  • 500- Errore interno del server

ELIMINA /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

    Obbligatorio: sì

Risposta

204 - Successo

La baseline è stata cancellata correttamente (nessun contenuto restituito)

Risposte agli errori

  • 400- TestID non valido

  • 500- Errore interno del server

GET /tasks

Description

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

Risposta

Nome Description

tasks

Un elenco di ID delle attività per l'esecuzione dei test

OPZIONI/ATTIVITÀ

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 ID delle attività 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 AWS Fargate nella regione

region

La regione in cui esistono le risorse nella 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 AWS Fargate nella regione

region

La regione in cui esistono le risorse nella 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