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.
Spécification des outils MCP
La solution Distributed Load Testing présente un ensemble d'outils MCP qui permettent aux agents IA d'interagir avec les scénarios et les résultats des tests. Ces outils fournissent des fonctionnalités abstraites de haut niveau qui correspondent à la manière dont les agents d'IA traitent les informations, leur permettant de se concentrer sur l'analyse et les informations plutôt que sur des contrats d'API détaillés.
Le serveur MCP prend en charge deux modes d'accès, contrôlés par le CloudFormation paramètre MCPServerAccessMode AWS :
-
ReadOnly(par défaut) — Seuls les outils de lecture sont enregistrés. Les agents voient 7 outils via
tools/list. Aucune opération de mutation n'est disponible. -
ReadWrite— Les outils de lecture et d'écriture sont enregistrés. Les agents peuvent accéder à tous les outils (lecture et écriture)
tools/listet peuvent créer des tests, déclencher des exécutions, gérer des plannings et télécharger des scripts.
Le mode d'accès est défini au moment du déploiement. Pour modifier le mode d'accès après le déploiement initial, effectuez une mise à jour de la CloudFormation pile avec la nouvelle valeur de MCPServerAccessMode paramètre. La modification prend effet lorsque la mise à jour de la pile est terminée : aucune autre étape manuelle n'est requise.
En ReadOnly mode, les outils d'écriture ne sont pas du tout enregistrés ; les agents ne les voient jamaistools/list. La politique AWS Identity and Access Management (IAM) sur la fonction AWS Lambda du serveur MCP est définie en conséquence. ReadOnly autorise uniquement les requêtes GET à l'API. ReadWrite autorise GET, POST, PUT et DELETE.
Outils de lecture
liste_scénarios
Description
L'list_scenariosoutil extrait une liste de tous les scénarios de test disponibles avec des métadonnées de base.
Endpoint
GET /scenarios
Parameters
Aucune
Réponse
| Nom | Description |
|---|---|
|
|
Identifiant unique pour le scénario de test |
|
|
Nom du scénario de test |
|
|
État actuel du scénario de test |
|
|
Date de création ou de dernière exécution du test |
|
|
Description du scénario de test |
get_scenario_details
Description
L'get_scenario_detailsoutil récupère la configuration du test et le test le plus récent pour un seul scénario de test.
La réponse indique le mode de circulation du scénario. Un nativeRunMode objet indique le mode natif et son absence indique le mode standard. Pour un scénario natif, les holdFor champs concurrencyrampUp, et ne reflètent pas la charge générée par l'exécution. Le chargement provient plutôt du script. Pour plus d'informations, reportez-vous à la section Modes de forme du trafic.
Endpoint
GET /scenarios/<test_id>?history=false&results=false
Paramètre de demande
-
test_id -
-
L'identifiant unique du scénario de test
Type : chaîne
Obligatoire : oui
-
Réponse
| Nom | Description |
|---|---|
|
|
Configuration des tâches pour chaque région |
|
|
Définition et paramètres du test |
|
|
État actuel du test |
|
|
Horodatage de début du test |
|
|
Horodatage de fin du test (si terminé) |
list_test_runs
Description
L'list_test_runsoutil extrait une liste des tests exécutés pour un scénario de test spécifique, triés du plus récent au plus ancien. Renvoie un maximum de 30 résultats. Un seul limit des deux start_timestamp peut être fourni, pas les deux.
Endpoint
GET /scenarios/<testid>/testruns/?limit=<limit>
or
GET /scenarios/<testid>/testruns/?start_timestamp=<start_timestamp>
Paramètres de demande
-
test_id -
-
L'identifiant unique du scénario de test
Type : chaîne
Obligatoire : oui
-
-
limit -
-
Nombre maximum de cycles de tests à renvoyer. Ne peut pas être utilisée avec
start_timestamp.Type : Integer
Valeur par défaut : 20
Maximum : 30
Obligatoire : non
-
-
start_timestamp -
-
Renvoie tous les essais remontant à cet horodatage. Ne peut pas être utilisée avec
limit.Type : chaîne (format date-heure ISO 8601, par exemple)
2024-01-15T14:30:00.000ZObligatoire : non
-
Réponse
| Nom | Description |
|---|---|
|
|
Tableau de résumés de tests avec des mesures de performance et des percentiles pour chaque exécution |
get_test_run
Description
L'get_test_runoutil extrait les résultats détaillés d'un seul test avec des ventilations par région et par point final.
Endpoint
GET /scenarios/<testid>/testruns/<testrunid>
Paramètres de demande
-
test_id -
-
L'identifiant unique du scénario de test
Type : chaîne
Obligatoire : oui
-
-
test_run_id -
-
L'identifiant unique pour le test spécifique
Type : chaîne
Obligatoire : oui
-
Réponse
| Nom | Description |
|---|---|
|
|
Données de test complètes, y compris la ventilation des résultats par région, les mesures spécifiques aux terminaux, les percentiles de performance (p50, p90, p95, p99), le nombre de réussites et d'échecs, les temps de réponse et de latence, ainsi que la configuration de test utilisée pour l'exécution |
get_latest_test_run
Description
L'get_latest_test_runoutil extrait le test le plus récent pour un scénario de test spécifique.
Endpoint
GET /scenarios/<testid>/testruns/?limit=1
Note
Les résultats sont triés par heure à l'aide d'un indice secondaire global (GSI), de sorte que le test le plus récent soit renvoyé.
Paramètre de demande
-
test_id -
-
L'identifiant unique du scénario de test
Type : chaîne
Obligatoire : oui
-
Réponse
| Nom | Description |
|---|---|
|
|
Données de test les plus récentes au même format que |
get_baseline_test_run
Description
L'get_baseline_test_runoutil récupère le test de référence effectué pour un scénario de test spécifique. La base de référence est utilisée à des fins de comparaison des performances.
Endpoint
GET /scenarios/<test_id>/baseline
Paramètre de demande
-
test_id -
-
L'identifiant unique du scénario de test
Type : chaîne
Obligatoire : oui
-
Réponse
| Nom | Description |
|---|---|
|
|
Données d'exécution des tests de référence à des fins de comparaison, y compris toutes les mesures et la configuration du cycle de référence désigné |
get_test_run_artefacts
Description
L'get_test_run_artifactsoutil extrait les informations du compartiment Amazon S3 pour accéder aux artefacts de test, notamment les journaux, les fichiers d'erreurs et les résultats.
Endpoint
GET /scenarios/<testid>/testruns/<testrunid>
Paramètres de demande
-
test_id -
-
L'identifiant unique du scénario de test
Type : chaîne
Obligatoire : oui
-
-
test_run_id -
-
L'identifiant unique pour le test spécifique
Type : chaîne
Obligatoire : oui
-
Réponse
| Nom | Description |
|---|---|
|
|
Nom du compartiment S3 dans lequel les artefacts sont stockés |
|
|
Préfixe de chemin pour le stockage actuel des artefacts (version 4.0+) |
|
|
Préfixe de chemin pour le stockage des artefacts existants (avant la version 4.0) |
Outils d'écriture
Les outils d'écriture ne sont disponibles que MCPServerAccessMode s'ils sont définis surReadWrite. Ils permettent aux agents de créer, de modifier et d'exécuter des scénarios de test.
créer_test
Description
L'create_testoutil crée un nouveau scénario de test de charge sans l'exécuter. Le test est enregistré et peut être exécuté ultérieurement avecstart_run. Pour les tests basés sur des scripts (jmeter, k6, locust), appelez d'upload_test_scriptabord et transmettez le résultat renvoyé. test_id
Parameters
-
test_id -
-
Identifiant unique du scénario de test. Omettre pour les tests HTTP simples (le système en génère un). Obligatoire pour les tests basés sur des scripts : utilisez la valeur
test_idrenvoyée parupload_test_script.Type : String
Obligatoire : Non (obligatoire pour les tests basés sur des scripts)
-
-
test_name -
-
Human-readable nom du scénario de test
Type : chaîne
Obligatoire : oui
-
-
test_description -
-
Description de ce que valide ce test
Type : chaîne
Obligatoire : oui
-
-
test_type -
-
Type de test.
simplepour les tests de points de terminaison HTTP configurés en ligne.jmeterk6, oulocustpour les tests basés sur des scripts qui font référence à un fichier de script téléchargé.Type : chaîne
Obligatoire : oui
-
-
test_task_configs -
-
Configuration des tâches régionales. Chaque entrée spécifie une région, le nombre de tâches AWS Fargate et le nombre d'utilisateurs virtuels simultanés par tâche. Nombre total d'utilisateurs simultanés pour une région =
task_count×concurrency.Type : Tableau d'objets (chacun avec
region,task_count,concurrency)Obligatoire : oui
-
-
test_scenario -
-
Scénario d'exécution du test définissant le profil de charge et le ou les points de terminaison cibles. Contient
execution(ramp-up, hold-for, nom du scénario) etscenarios(définitions de scénarios nommées avec soit unrequeststableau pour les tests simples, soit unescriptchaîne pour les tests basés sur des scripts).Type : objet
Obligatoire : oui
-
-
show_live -
-
S'il faut activer la surveillance en direct pendant l'exécution du test.
Type : Boolean
Par défaut:
falseObligatoire : non
-
-
tags -
-
Tags pour organiser les scénarios de test. Maximum de 5 étiquettes.
Type : tableau de chaînes
Obligatoire : non
-
-
native_run_mode -
-
Objet qui sélectionne le mode de circulation. Omettez-le pour le mode Standard, où la solution contrôle la charge. Incluez-le pour le mode natif, où votre script téléchargé contrôle le chargement. Pour plus d'informations, reportez-vous à la section Modes de forme du trafic.
Type : objet
Obligatoire : non
-
Le mode natif diffère du mode standard comme suit :
-
L'objet nécessite un champ
max_test_duration_seconds, d'une durée maximale de 24 heures. -
Seuls les tests basés sur des scripts (
jmeterk6, oulocust) acceptent le mode natif. -
Les tests HTTP Endpoint simples s'exécutent toujours en mode Standard.
-
test_task_configsreste obligatoire, et chaque entrée l'est toujoursconcurrency. -
Une requête qui est
concurrencydéfinienative_run_modeavec succès. -
La charge générée par le test est la charge déclarée par votre script.
-
La charge totale par région est la charge de votre script multipliée par
task_count.
Réponse
| Nom | Description |
|---|---|
|
|
L'identifiant unique du test créé |
|
|
Nom du test |
|
|
État du test (par exemple, |
test_mise à jour
Description
L'update_testoutil met à jour la configuration d'un scénario de test existant. Il s'agit d'un remplacement complet : la configuration de test complète doit être fournie, et pas seulement les champs modifiés. Le test ne doit pas être en cours d'exécution.
Parameters
Identique àcreate_test, sauf que test_id c'est obligatoire et doit faire référence à un test existant.
Réponse
| Nom | Description |
|---|---|
|
|
L'identifiant unique du test mis à jour |
|
|
Nom du test |
|
|
État du test |
supprimer_test
Description
L'delete_testoutil supprime définitivement un scénario de test et toutes les données associées, y compris l'historique des tests, les calendriers et les CloudWatch tableaux de bord Amazon. Cette action ne peut pas être annulée. Le test ne doit pas être en cours d'exécution.
Parameters
-
test_id -
-
L'identifiant unique du scénario de test
Type : chaîne
Obligatoire : oui
-
Réponse
| Nom | Description |
|---|---|
|
|
Confirmation de la suppression |
démarrage_exécution
Description
L'start_runoutil lance l'exécution d'un scénario de test. Le serveur MCP récupère la configuration stockée du test et déclenche son exécution. Retourne immédiatement avec le statutqueued. get_latest_test_runÀ utiliser pour compléter le sondage.
Parameters
-
test_id -
-
L'identifiant unique du scénario de test
Type : chaîne
Obligatoire : oui
-
Réponse
| Nom | Description |
|---|---|
|
|
L'identifiant unique du test |
|
|
État du test (par exemple, |
stop_run
Description
L'stop_runoutil arrête un test en cours d'exécution. Envoie un signal d'annulation à toutes les tâches Fargate en cours d'exécution. Le statut du test passe àcancelled. Les résultats partiels sont disponibles viaget_latest_test_run.
Parameters
-
test_id -
-
L'identifiant unique du scénario de test
Type : chaîne
Obligatoire : oui
-
Réponse
| Nom | Description |
|---|---|
|
|
Confirmation de l'annulation |
create_simple_schedule
Description
L'create_simple_scheduleoutil crée un test planifié unique qui s'exécute automatiquement à une date et à une heure spécifiées. Nécessite tous les champs de configuration de test standard ainsi que les champs de planification.
Parameters
Tous les create_test paramètres (avec les mêmes règles test_id facultatives), plus :
-
schedule_date -
-
Date de la course prévue. Ça doit être dans le futur.
Type : Chaîne (format :
YYYY-MM-DD)Obligatoire : oui
-
-
schedule_time -
-
Heure de la course prévue.
Type : chaîne (format :
HH:MM24 heures sur 24)Obligatoire : oui
-
-
schedule_timezone -
-
Fuseau horaire IANA pour l'interprétation des horaires (par exemple
America/New_York,,UTC).Type : String
Par défaut:
UTCObligatoire : non
-
Réponse
| Nom | Description |
|---|---|
|
|
L'identifiant unique du test |
|
|
État du test (par exemple, |
|
|
Heure d'exécution prévue pour la prochaine |
create_cron_schedule
Description
L'create_cron_scheduleoutil crée un test planifié récurrent qui s'exécute automatiquement en fonction d'une expression cron. Nécessite tous les champs de configuration de test standard ainsi que les champs de planification cron.
Parameters
Tous les create_test paramètres (avec les mêmes règles test_id facultatives), plus :
-
cron_value -
-
Expression cron pour un calendrier récurrent. Format standard à 5 champs (par exemple,
0 9 * * *pour tous les jours à 9 h 00).Type : chaîne
Obligatoire : oui
-
-
recurrence -
-
Human-readable étiquette de récurrence (par exemple
daily,weekly).Type : chaîne
Obligatoire : oui
-
-
cron_expiry_date -
-
Date à laquelle le calendrier récurrent cesse de s'exécuter.
Type : Chaîne (format :
YYYY-MM-DD)Obligatoire : non
-
-
schedule_timezone -
-
Fuseau horaire IANA pour l'interprétation des horaires.
Type : String
Par défaut:
UTCObligatoire : non
-
Réponse
| Nom | Description |
|---|---|
|
|
L'identifiant unique du test |
|
|
État du test (par exemple, |
|
|
Heure d'exécution prévue pour la prochaine |
update_simple_schedule
Description
L'update_simple_scheduleoutil met à jour la configuration du calendrier pour un test planifié unique existant. Remplacement complet de la configuration de test, y compris les champs de planification. Le test doit être en scheduled cours.
Parameters
Identique àcreate_simple_schedule, sauf que test_id cela est obligatoire et doit faire référence à un test programmé existant.
Réponse
Identique à create_simple_schedule.
update_cron_schedule
Description
L'update_cron_scheduleoutil met à jour la configuration du calendrier pour un test programmé récurrent existant. Remplacement complet de la configuration de test, y compris les champs de planification cron. Le test doit être en scheduled cours.
Parameters
Identique àcreate_cron_schedule, sauf que test_id cela est obligatoire et doit faire référence à un test programmé existant.
Réponse
Identique à create_cron_schedule.
upload_test_script
Description
L'upload_test_scriptoutil télécharge un fichier de script (JMeter.jmx, k6.js, Locust ou.zip) requis pour les .py tests basés sur des scripts. Doit être appelé avant create_test ou update_test pour les tests basés sur des scripts. Renvoie un test_id et script_filename à utiliser lors des appels d'outils suivants.
Parameters
-
test_id -
-
Identifiant unique du scénario de test. Omettre pour les nouveaux tests (le système en génère un). Prévoyez que les tests existants doivent être téléchargés au bon endroit.
Type : chaîne
Obligatoire : non
-
-
test_type -
-
Type de test :
jmeterk6, oulocust.Type : chaîne
Obligatoire : oui
-
-
file_extension -
-
Extension de fichier :
jmxjs,py, ouzip.Type : chaîne
Obligatoire : oui
-
-
file_content -
-
Base64-encoded contenu du fichier.
Type : chaîne
Obligatoire : oui
-
Réponse
| Nom | Description |
|---|---|
|
|
L'identifiant du test (généré ou fourni) |
|
|
Nom du fichier en S3 (format : |
Guides sur les flux
Les guides de flux de travail sont des recettes en plusieurs étapes qui aident les agents à enchaîner plusieurs outils pour des opérations courantes. L'get_workflow_guidesoutil fournit des instructions structurées étape par étape pour chaque flux de travail.
get_workflow_guides
Description
L'get_workflow_guidesoutil renvoie des recettes de flux de travail étape par étape pour les opérations DLT multi-outils courantes. Renvoie des conseils structurés sur les outils à appeler, dans quel ordre et sur la manière d'interpréter les résultats entre les étapes.
Parameters
-
workflow -
-
Le flux de travail pour lequel vous souhaitez obtenir des conseils. L'un des éléments suivants :
run_and_monitorbaseline_comparisonschedule_test,,create_and_run,update_and_run.Type : chaîne
Obligatoire : oui
-
Réponse
| Nom | Description |
|---|---|
|
|
Identifiant du workflow |
|
|
Brève description de l'objectif du flux de travail |
|
|
Tableau d'objets d'étape, chacun contenant |
Flux de travail disponibles
exécuter_et_surveiller
Lancer un test existant et effectuer un sondage jusqu'à la fin.
-
Trouvez le test à l'aide de
list_scenariosouget_scenario_details -
Démarrez le test à l'aide de
start_run -
Sondage à compléter en utilisant
get_latest_test_run(intervalle recommandé : 30 secondes ; gestion du 404 initial pendant 1 à 3 minutes pendant le lancement des tâches Amazon Elastic Container Service (Amazon ECS)) -
Signaler les résultats une fois que l'état du terminal est atteint (
completefailed, oucancelled)
comparaison_de référence
Exécutez un test et comparez les résultats par rapport à une base de référence enregistrée.
-
Trouvez le test à l'aide de
list_scenariosouget_scenario_details -
Démarrez le test à l'aide de
start_run -
Sondage à compléter en utilisant
get_latest_test_run(intervalle recommandé : 30 secondes) -
Récupérez la référence en utilisant
get_baseline_test_run(ignorez la comparaison si aucune référence n'est définie) -
Comparez les indicateurs (temps de réponse moyen, latence, débit, percentiles, taux d'erreur)
programme_test
Créez un test avec un calendrier récurrent ou ponctuel.
-
Déterminez le type de calendrier (ponctuel →
create_simple_schedule, récurrent →create_cron_schedule) -
Téléchargez un script de test s'il est basé sur un script en utilisant
upload_test_script -
Créez le test planifié avec la configuration complète et les champs de planification
-
Vérifiez que le calendrier a été créé à l'aide de
get_scenario_details(cochezstatus: scheduledetnextRun)
Contraintes : intervalle minimum d'une heure entre les exécutions récurrentes, l'intervalle doit dépasser la durée du test, cron doit spécifier exactement une valeur d'une minute.
créer_et_exécuter
Créez un nouveau test à partir de zéro et exécutez-le immédiatement.
-
Téléchargez un script de test s'il est basé sur un script en utilisant
upload_test_script -
Créez le test à l'aide de
create_test -
Démarrez le test en utilisant
start_runavec letest_id -
Sondage à compléter en utilisant
get_latest_test_run(intervalle recommandé : 30 secondes) -
Résultats du rapport
mettre à jour_et_exécuter
Modifiez la configuration d'un test existant et réexécutez-le immédiatement.
-
Récupérez la configuration actuelle à l'aide de
get_scenario_details -
Téléchargez un nouveau script si vous le modifiez à l'aide de
upload_test_script -
Mettez à jour la configuration de test en utilisant
update_test(remplacement complet — inclure tous les champs) -
Démarrez le test à l'aide de
start_run -
Sondage à compléter en utilisant
get_latest_test_run(intervalle recommandé : 30 secondes) -
Résultats du rapport
Note
Tous les outils MCP exploitent les points de terminaison d'API existants. Aucune modification des API sous-jacentes n'est requise pour prendre en charge la fonctionnalité MCP.