API de test de charge distribuée - Tests de charge distribués sur AWS

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

API de test de charge distribuée

Cette solution de test de charge vous permet d'exposer les données des résultats de test de manière sécurisée. L'API fait office de « porte d'entrée » pour accéder aux données de test stockées dans Amazon DynamoDB. Vous pouvez également utiliser le APIs pour accéder à toutes les fonctionnalités étendues que vous intégrez à la solution.

Cette solution utilise un groupe d'utilisateurs Amazon Cognito intégré à Amazon API Gateway pour l'identification et l'autorisation. Lorsqu'un groupe d'utilisateurs est utilisé avec l'API, les clients ne sont autorisés à appeler les méthodes activées par le groupe d'utilisateurs qu'après avoir fourni un jeton d'identité valide.

Pour plus d'informations sur l'exécution de tests directement via l'API, consultez la section Signing Requests dans la documentation de référence de l'API REST Amazon API Gateway.

Les opérations suivantes sont disponibles dans l'API de la solution.

Note

Pour plus d'informations testScenario et d'autres paramètres, reportez-vous aux scénarios et à l'exemple de charge utile dans le GitHub référentiel.

Informations sur la pile

Scénarios

Tests

Base de référence

Tâches

Régions

OBTENIR /stack-info

Description

L'GET /stack-infoopération récupère des informations sur la pile déployée, notamment l'heure de création, la région et la version. Ce point de terminaison est utilisé par le front-end.

Réponse

200 - Succès

Nom Description

created_time

Horodatage ISO 8601 lors de la création de la pile (par exemple,) 2025-09-09T19:40:22Z

region

Région AWS dans laquelle la pile est déployée (par exemple,us-east-1)

version

Version de la solution déployée (par exemple,v4.0.0)

Réponses aux erreurs

  • 403- Interdit : autorisations insuffisantes pour accéder aux informations de la pile

  • 404- Introuvable : les informations relatives à la pile ne sont pas disponibles

  • 500- Erreur interne du serveur

GET /scénarios

Description

L'GET /scenariosopération permet de récupérer une liste de scénarios de test.

Réponse

Nom Description

data

Une liste de scénarios comprenant l'ID, le nom, la description, le statut, la durée d'exécution, les balises, le nombre total d'essais et la dernière exécution de chaque test

POST /scénarios

Description

L'POST /scenariosopération permet de créer ou de planifier un scénario de test.

Corps de la demande

Nom Description

testName

Le nom du test

testDescription

Description du test

testTaskConfigs

Un objet qui spécifie concurrency (le nombre d'exécutions parallèles), taskCount (le nombre de tâches nécessaires pour exécuter un test) et region pour le scénario

testScenario

La définition du test, y compris la simultanéité, la durée du test, l'hôte et la méthode du test

testType

Le type de test (par exemplesimple,jmeter)

fileType

Le type de fichier de téléchargement (par exemple,none,script,zip)

tags

Un tableau de chaînes permettant de classer les tests. Champ facultatif d'une longueur maximale de 5 (par exemple,["blue", "3.0", "critical"])

scheduleDate

Date d'exécution d'un test. Fourni uniquement si vous planifiez un test (par exemple,2021-02-28)

scheduleTime

C'est le moment d'effectuer un test. Fourni uniquement si vous planifiez un test (par exemple,21:07)

scheduleStep

Étape du processus de planification. Fourni uniquement si vous planifiez un test récurrent. (Les étapes disponibles incluent create etstart)

cronvalue

La valeur cron pour personnaliser la planification récurrente. Le cas échéant, omettez ScheduleDate et ScheduleTime.

cronExpiryDate

Date requise pour que le cron expire et ne s'exécute pas indéfiniment.

recurrence

Récurrence d'un test programmé. Fourni uniquement si vous planifiez un test récurrent (par exemple dailyweekly,,biweekly, oumonthly)

Réponse

Nom Description

testId

L'identifiant unique du test

testName

Le nom du test

status

État du test

OPTIONS/SCÉNARIOS

Description

L'OPTIONS /scenariosopération fournit une réponse à la demande avec les en-têtes de réponse CORS corrects.

Réponse

Nom Description

testId

L'identifiant unique du test

testName

Le nom du test

status

État du test

OBTENEZ /scenarios/ {testId}

Description

L'GET /scenarios/{testId}opération permet de récupérer les détails d'un scénario de test spécifique.

Paramètres de demande

testId
  • L'identifiant unique du test

    Type : String

    Obligatoire : oui

latest
  • Paramètre de requête pour renvoyer uniquement le dernier test effectué. La valeur par défaut est true

    Type : booléen

    Obligatoire : non

history
  • Paramètre de requête pour inclure l'historique des tests dans la réponse. La valeur par défaut est true. Régler sur false pour exclure l'historique

    Type : booléen

    Obligatoire : non

Réponse

Nom Description

testId

L'identifiant unique du test

testName

Le nom du test

testDescription

Description du test

testType

Le type de test qui est exécuté (par exemplesimple,jmeter)

fileType

Type de fichier chargé (par exemple, nonescript,zip)

tags

Un tableau de chaînes pour classer les tests

status

État du test

startTime

L'heure et la date du début du dernier test

endTime

L'heure et la date de fin du dernier test

testScenario

La définition du test, y compris la simultanéité, la durée du test, l'hôte et la méthode du test

taskCount

Le nombre de tâches nécessaires pour exécuter le test

taskIds

Une liste de tâches IDs pour exécuter des tests

results

Les résultats finaux du test

history

Une liste des résultats finaux des tests passés (exclus lorsquehistory=false)

totalRuns

Le nombre total de tests pour ce scénario

lastRun

L'horodatage du dernier test

errorReason

Un message d'erreur généré lorsqu'une erreur se produit

nextRun

La prochaine exécution planifiée (par exemple,2017-04-22 17:18:00)

scheduleRecurrence

La récurrence du test (par exemple,,daily, weeklybiweekly,monthly)

POST /scenarios/ {testId}

Description

L'POST /scenarios/{testId}opération permet d'annuler un scénario de test spécifique.

Paramètre de demande

testId
  • L'identifiant unique du test

    Type : String

    Obligatoire : oui

Réponse

Nom Description

status

État du test

SUPPRIMER /scenarios/ {testId}

Description

L'DELETE /scenarios/{testId}opération permet de supprimer toutes les données relatives à un scénario de test spécifique.

Paramètre de demande

testId
  • L'identifiant unique du test

    Type : String

    Obligatoire : oui

Réponse

Nom Description

status

État du test

OPTIONS /scénarios/ {testId}

Description

L'OPTIONS /scenarios/{testId}opération fournit une réponse à la demande avec les en-têtes de réponse CORS corrects.

Réponse

Nom Description

testId

L'identifiant unique du test

testName

Le nom du test

testDescription

Description du test

testType

Le type de test qui est exécuté (par exemplesimple,jmeter)

fileType

Type de fichier chargé (par exemple, nonescript,zip)

status

État du test

startTime

L'heure et la date du début du dernier test

endTime

L'heure et la date de fin du dernier test

testScenario

La définition du test, y compris la simultanéité, la durée du test, l'hôte et la méthode du test

taskCount

Le nombre de tâches nécessaires pour exécuter le test

taskIds

Une liste de tâches IDs pour exécuter des tests

results

Les résultats finaux du test

history

Une liste des résultats finaux des tests passés

errorReason

Un message d'erreur généré lorsqu'une erreur se produit

GET /scenarios/ {testId} /testruns

Description

L'GET /scenarios/{testId}/testrunsopération récupère le test exécuté IDs pour un scénario de test spécifique, éventuellement filtré par plage de temps. Whenlatest=true, renvoie uniquement le test le plus récent.

Paramètres de demande

testId
  • L'ID du scénario de test

    Type : String

    Obligatoire : oui

latest
  • Renvoie uniquement l'ID de test le plus récent

    Type : booléen

    Par défaut: false

    Obligatoire : non

start_timestamp
  • Horodatage ISO 8601 à partir duquel filtrer les essais (inclus). Par exemple, 2024-01-01T00:00:00Z

    Type : chaîne (format date-heure)

    Obligatoire : non

end_timestamp
  • Horodatage ISO 8601 pour filtrer les essais jusqu'au (inclus). Par exemple, 2024-12-31T23:59:59Z

    Type : chaîne (format date-heure)

    Obligatoire : non

limit
  • Nombre maximum de tests à renvoyer (ignoré lorsquelatest=true)

    Type : entier (minimum : 1, maximum : 100)

    Par défaut: 20

    Obligatoire : non

next_token
  • Jeton de pagination de la réponse précédente pour accéder à la page suivante

    Type : chaîne

    Obligatoire : non

Réponse

200 - Succès

Nom Description

testRuns

Tableau d'objets de test, chacun contenant testRunId (chaîne) et startTime (date-heure ISO 8601)

pagination

Objet contenant limit (entier) et next_token (chaîne ou valeur nulle). Le jeton est nul s'il n'y a plus de résultats

Réponses aux erreurs

  • 400- Format ou paramètres d'horodatage non valides

  • 404- Scénario de test introuvable

  • 500- Erreur interne du serveur

Exemple d’utilisation

  • Dernier test effectué uniquement : GET /scenarios/test123/testruns?latest=true

  • Plus récent dans l'intervalle de temps : GET /scenarios/test123/testruns?latest=true&start_timestamp=2024-01-01T00:00:00Z

  • Demande de page suivante : GET /scenarios/test123/testruns?limit=20&next_token=eyJ0ZXN0SWQiOiJzZVFVeTEyTEtMIiwic3RhcnRUaW1lIjoiMjAyNC0wMS0xM1QxNjo0NTowMFoifQ==

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

Description

L'GET /scenarios/{testId}/testruns/{testRunId}opération récupère les résultats complets et les métriques d'un essai spécifique. Vous pouvez éventuellement omettre les résultats de l'historique history=false pour une réponse plus rapide.

Paramètres de demande

testId
  • L'ID du scénario de test

    Type : String

    Obligatoire : oui

testRunId
  • L'ID de cycle de test spécifique

    Type : String

    Obligatoire : oui

history
  • Incluez un tableau d'historique en réponse. Réglez sur false pour omettre l'historique afin d'accélérer la réponse

    Type : booléen

    Par défaut: true

    Obligatoire : non

Réponse

200 - Succès

Nom Description

testId

L'identifiant unique du test (par exemple,seQUy12LKL)

testRunId

L'ID d'exécution de test spécifique (par exemple,2DEwHItEne)

testDescription

Description du test de charge

testType

Le type de test (par exemplesimple,jmeter)

status

État du test :complete, runningfailed, ou cancelled

startTime

L'heure et la date de début du test (par exemple,2025-09-09 21:01:00)

endTime

L'heure et la date de fin du test (par exemple,2025-09-09 21:18:29)

succPercent

Pourcentage de réussite (par exemple,100.00)

testTaskConfigs

Tableau d'objets de configuration de tâches contenant regiontaskCount, et concurrency

completeTasks

Objet mappant les régions au nombre de tâches achevées

results

Objet contenant des métriques détaillées, notamment avg_lt (latence moyenne), les percentiles (p0_0,p50_0,p90_0,p95_0,p99_0,p99_9,p100_0), avg_rt (temps de réponse moyen), avg_ct (temps de connexion moyen), stdev_rt (temps de réponse à l'écart type),concurrency,throughput, succ (nombre de réussites), fail (nombre d'échecs),bytes, testDurationmetricS3Location, rc (tableau de codes de réponse) et tableau labels

testScenario

Objet contenant la configuration de test avec execution les scenarios propriétésreporting,, et

history

Tableau des résultats de tests historiques (exclus lorsquehistory=false)

Réponses aux erreurs

  • 400- TestID non valide ou testRunId

  • 404- Le test est introuvable

  • 500- Erreur interne du serveur

SUPPRIMER /scenarios/ {testId} /testruns/ {} testRunId

Description

L'DELETE /scenarios/{testId}/testruns/{testRunId}opération supprime toutes les données et tous les artefacts liés à un essai spécifique. Les données de test sont supprimées de DynamoDB, tandis que les données de test réelles dans S3 restent inchangées.

Paramètres de demande

testId
  • L'ID du scénario de test

    Type : String

    Obligatoire : oui

testRunId
  • L'ID de test spécifique à supprimer

    Type : String

    Obligatoire : oui

Réponse

204 - Succès

Le test a été supprimé avec succès (aucun contenu renvoyé)

Réponses aux erreurs

  • 400- TestID non valide ou testRunId

  • 403- Interdit : autorisations insuffisantes pour supprimer le test

  • 404- Le test est introuvable

  • 409- Conflit : le test est en cours et ne peut pas être supprimé

  • 500- Erreur interne du serveur

GET /scenarios/ {testId} /baseline

Description

L'GET /scenarios/{testId}/baselineopération récupère le résultat du test de référence désigné pour un scénario. Renvoie soit l'ID d'exécution du test de référence, soit les résultats complets de la ligne de base en fonction du data paramètre.

Paramètres de demande

testId
  • L'ID du scénario de test

    Type : String

    Obligatoire : oui

data
  • Renvoie les données complètes du cycle de test de référence sitrue, sinon, uniquement testRunId

    Type : booléen

    Par défaut: false

    Obligatoire : non

Réponse

200 - Succès

Quand data=false (par défaut) :

Nom Description

testId

L'ID du scénario de test (par exemple,seQUy12LKL)

baselineTestRunId

L'ID d'exécution du test de référence (par exemple,2DEwHItEne)

Quand data=true :

Nom Description

testId

L'ID du scénario de test (par exemple,seQUy12LKL)

baselineTestRunId

L'ID d'exécution du test de référence (par exemple,2DEwHItEne)

baselineData

Objet complet des résultats de test (même structure queGET /scenarios/{testId}/testruns/{testRunId})

Réponses aux erreurs

  • 400- Paramètre TestID non valide

  • 404- Scénario de test introuvable ou aucun scénario de référence défini

  • 500- Erreur interne du serveur

PUT /scenarios/ {testID} /baseline

Description

L'PUT /scenarios/{testId}/baselineopération désigne un essai spécifique comme base de référence pour la comparaison des performances. Une seule référence peut être définie par scénario.

Paramètres de demande

testId
  • L'ID du scénario de test

    Type : String

    Obligatoire : oui

Corps de la demande

Nom Description

testRunId

L'ID d'exécution du test à définir comme référence (par exemple,2DEwHItEne)

Réponse

200 - Succès

Nom Description

message

Message de confirmation (par exemple,Baseline set successfully)

testId

L'ID du scénario de test (par exemple,seQUy12LKL)

baselineTestRunId

L'ID d'exécution du test de référence qui a été défini (par exemple,2DEwHItEne)

Réponses aux erreurs

  • 400- TestID non valide ou testRunId

  • 404- Scénario de test ou exécution de test introuvable

  • 409- Conflit : le test ne peut pas être défini comme référence (par exemple, échec du test)

  • 500- Erreur interne du serveur

SUPPRIMER /scenarios/ {testId} /baseline

Description

L'DELETE /scenarios/{testId}/baselineopération efface la valeur de référence d'un scénario en la définissant sur une chaîne vide.

Paramètres de demande

testId
  • L'ID du scénario de test

    Type : String

    Obligatoire : oui

Réponse

204 - Succès

La ligne de base a été correctement effacée (aucun contenu renvoyé)

Réponses aux erreurs

  • 400- Identifiant de test non valide

  • 500- Erreur interne du serveur

GET /tâches

Description

L'GET /tasksopération vous permet de récupérer une liste des tâches Amazon Elastic Container Service (Amazon ECS) en cours d'exécution.

Réponse

Nom Description

tasks

Une liste de tâches IDs pour exécuter des tests

OPTIONS /tâches

Description

L'opération OPTIONS /tasks des tâches fournit une réponse à la demande avec les en-têtes de réponse CORS corrects.

Réponse

Nom Description

taskIds

Une liste de tâches IDs pour exécuter des tests

GET /régions

Description

L'GET /regionsopération vous permet de récupérer les informations sur les ressources régionales nécessaires pour exécuter un test dans cette région.

Réponse

Nom Description

testId

L'ID de région

ecsCloudWatchLogGroup

Le nom du groupe de CloudWatch journaux Amazon pour les tâches Amazon Fargate dans la région

region

La région dans laquelle se trouvent les ressources du tableau

subnetA

L'ID de l'un des sous-réseaux de la région

subnetB

L'ID de l'un des sous-réseaux de la région

taskCluster

Le nom du cluster AWS Fargate de la région

taskDefinition

L'ARN de la définition de tâche dans la région

taskImage

Le nom de l'image de la tâche dans la région

taskSecurityGroup

L'ID du groupe de sécurité dans la région

OPTIONS /régions

Description

L'OPTIONS /regionsopération fournit une réponse à la demande avec les en-têtes de réponse CORS corrects.

Réponse

Nom Description

testId

L'ID de région

ecsCloudWatchLogGroup

Le nom du groupe de CloudWatch journaux Amazon pour les tâches Amazon Fargate dans la région

region

La région dans laquelle se trouvent les ressources du tableau

subnetA

L'ID de l'un des sous-réseaux de la région

subnetB

L'ID de l'un des sous-réseaux de la région

taskCluster

Le nom du cluster AWS Fargate de la région

taskDefinition

L'ARN de la définition de tâche dans la région

taskImage

Le nom de l'image de la tâche dans la région

taskSecurityGroup

L'ID du groupe de sécurité dans la région