View a markdown version of this page

Spezifikation der MCP-Tools - Verteilte Lasttests auf AWS

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Spezifikation der MCP-Tools

Die Distributed Load Testing-Lösung stellt eine Reihe von MCP-Tools zur Verfügung, mit denen KI-Agenten mit Testszenarien und Ergebnissen interagieren können. Diese Tools bieten abstrakte Funktionen auf hoher Ebene, die sich an der Art und Weise orientieren, wie KI-Agenten Informationen verarbeiten, sodass sie sich auf Analysen und Erkenntnisse konzentrieren können, anstatt auf detaillierte API-Verträge.

Der MCP-Server unterstützt zwei Zugriffsmodi, die durch den MCPServerAccessMode CloudFormation AWS-Parameter gesteuert werden:

  • ReadOnly(Standard) — Nur Lesetools sind registriert. Agenten sehen 7 Tools übertools/list. Es sind keine Mutationsoperationen verfügbar.

  • ReadWrite— Sowohl Lese- als auch Schreibwerkzeuge sind registriert. Agenten sehen alle Tools (Lesen und Schreiben) über tools/list und können Tests erstellen, Läufe auslösen, Zeitpläne verwalten und Skripte hochladen.

Der Zugriffsmodus wird bei der Bereitstellung festgelegt. Um den Zugriffsmodus nach der ersten Bereitstellung zu ändern, führen Sie ein CloudFormation Stack-Update mit dem neuen MCPServerAccessMode Parameterwert durch. Die Änderung wird wirksam, wenn das Stack-Update abgeschlossen ist — es sind keine weiteren manuellen Schritte erforderlich.

Im ReadOnly Modus sind Schreibwerkzeuge überhaupt nicht registriert — Agenten sehen sie nietools/list. Die AWS-Richtlinie für Identity and Access Management (IAM) für die AWS-Lambda-Funktion des MCP-Servers ist entsprechend festgelegt. ReadOnly erlaubt nur GET-Anfragen an die API. ReadWrite erlaubt GET, POST, PUT und DELETE.

Werkzeuge lesen

list_scenarios

Description

Das list_scenarios Tool ruft eine Liste aller verfügbaren Testszenarien mit grundlegenden Metadaten ab.

Endpoint

GET /scenarios

Parameters

Keine

Antwort

Name Description

testId

Eindeutiger Bezeichner für das Testszenario

testName

Name des Testszenarios

status

Aktueller Status des Testszenarios

startTime

Wann der Test erstellt oder zuletzt ausgeführt wurde

testDescription

Beschreibung des Testszenarios

get_scenario_details

Description

Das get_scenario_details Tool ruft die Testkonfiguration und den letzten Testlauf für ein einzelnes Testszenario ab.

Die Antwort gibt den Traffic-Shape-Modus des Szenarios an. Ein nativeRunMode Objekt weist auf den systemeigenen Modus hin, und sein Fehlen weist auf den Standardmodus hin. In einem systemeigenen Szenario geben die holdFor Felder concurrencyrampUp, und nicht die Last wieder, die durch den Rechenlauf generiert wurde. Die Last kommt stattdessen aus dem Skript. Weitere Informationen finden Sie unter Traffic-Shape-Modi.

Endpoint

GET /scenarios/<test_id>?history=false&results=false

Parameter anfordern

test_id
  • Die eindeutige Kennung für das Testszenario

    Typ: Zeichenfolge

    Erforderlich: Ja

Antwort

Name Description

testTaskConfigs

Aufgabenkonfiguration für jede Region

testScenario

Testspezifikation und Parameter

status

Aktueller Teststatus

startTime

Zeitstempel für den Teststart

endTime

Zeitstempel für das Ende des Tests (falls abgeschlossen)

list_test_runs

Description

Das list_test_runs Tool ruft eine Liste von Testläufen für ein bestimmtes Testszenario ab, sortiert vom neuesten zum ältesten. Gibt maximal 30 Ergebnisse zurück. Es start_timestamp kann nur eines von limit oder angegeben werden, nicht beide.

Endpoint

GET /scenarios/<testid>/testruns/?limit=<limit>

oder

GET /scenarios/<testid>/testruns/?start_timestamp=<start_timestamp>

Anforderungsparameter

test_id
  • Die eindeutige Kennung für das Testszenario

    Typ: Zeichenfolge

    Erforderlich: Ja

limit
  • Maximale Anzahl von Testläufen, die zurückgegeben werden sollen. Kann nicht mit start_timestamp verwendet werden.

    Typ: Ganzzahl

    Standard: 20

    Maximum: 30

    Erforderlich: Nein

start_timestamp
  • Gibt alle Testläufe zurück, die auf diesen Zeitstempel zurückgehen. Kann nicht mit limit verwendet werden.

    Typ: Zeichenfolge (z. B. im ISO 8601-Format für Datum und Uhrzeit) 2024-01-15T14:30:00.000Z

    Erforderlich: Nein

Antwort

Name Description

testRuns

Reihe von Zusammenfassungen von Testläufen mit Leistungskennzahlen und Perzentilen für jeden Lauf

get_test_run

Description

Das get_test_run Tool ruft detaillierte Ergebnisse für einen einzelnen Testlauf mit Aufschlüsselungen nach Regionen und Endpunkten ab.

Endpoint

GET /scenarios/<testid>/testruns/<testrunid>

Anforderungsparameter

test_id
  • Die eindeutige Kennung für das Testszenario

    Typ: Zeichenfolge

    Erforderlich: Ja

test_run_id
  • Die eindeutige Kennung für den spezifischen Testlauf

    Typ: Zeichenfolge

    Erforderlich: Ja

Antwort

Name Description

results

Vollständige Testlaufdaten, einschließlich Aufschlüsselung der regionalen Ergebnisse, endpunktspezifischer Metriken, Leistungsperzentile (p50, p90, p95, p99), Erfolgs- und Fehlschlagzahlen, Reaktionszeiten und Latenz sowie der für den Lauf verwendeten Testkonfiguration

get_latest_test_run

Description

Das get_latest_test_run Tool ruft den neuesten Testlauf für ein bestimmtes Testszenario ab.

Endpoint

GET /scenarios/<testid>/testruns/?limit=1

Anmerkung

Die Ergebnisse werden anhand eines Global Secondary Index (GSI) nach Zeit sortiert, sodass der neueste Testlauf zurückgegeben wird.

Parameter anfordern

test_id
  • Die eindeutige Kennung für das Testszenario

    Typ: Zeichenfolge

    Erforderlich: Ja

Antwort

Name Description

results

Aktuelle Testlaufdaten mit demselben Format wie get_test_run

get_baseline_test_run

Description

Das get_baseline_test_run Tool ruft den Baseline-Testlauf für ein bestimmtes Testszenario ab. Die Basislinie wird für Leistungsvergleichszwecke verwendet.

Endpoint

GET /scenarios/<test_id>/baseline

Parameter anfordern

test_id
  • Die eindeutige Kennung für das Testszenario

    Typ: Zeichenfolge

    Erforderlich: Ja

Antwort

Name Description

baselineData

Basisdaten des Testlaufs zu Vergleichszwecken, einschließlich aller Metriken und Konfigurationen aus dem festgelegten Basislauf

get_test_run_artifacts

Description

Das get_test_run_artifacts Tool ruft Amazon S3-Bucket-Informationen für den Zugriff auf Testartefakte ab, einschließlich Protokollen, Fehlerdateien und Ergebnissen.

Endpoint

GET /scenarios/<testid>/testruns/<testrunid>

Anforderungsparameter

test_id
  • Die eindeutige Kennung für das Testszenario

    Typ: Zeichenfolge

    Erforderlich: Ja

test_run_id
  • Die eindeutige Kennung für den spezifischen Testlauf

    Typ: Zeichenfolge

    Erforderlich: Ja

Antwort

Name Description

bucketName

Name des S3-Buckets, in dem Artefakte gespeichert werden

testRunPath

Pfadpräfix für den aktuellen Artefaktspeicher (Version 4.0+)

testScenarioPath

Pfadpräfix für älteren Artefaktspeicher (vor Version 4.0)

Tools schreiben

Schreibwerkzeuge sind nur verfügbar, wenn auf gesetzt MCPServerAccessMode istReadWrite. Sie ermöglichen es Agenten, Testszenarien zu erstellen, zu ändern und auszuführen.

create_test

Description

Das create_test Tool erstellt ein neues Lasttestszenario, ohne es auszuführen. Der Test wird gespeichert und kann später mit ausgeführt werdenstart_run. Bei skriptbasierten Tests (jmeter, k6, locust) rufen Sie upload_test_script zuerst auf und übergeben den zurückgegebenen Wert. test_id

Parameters

test_id
  • Die eindeutige Kennung des Testszenarios. Bei einfachen HTTP-Tests weglassen (das System generiert einen). Erforderlich für skriptbasierte Tests — verwenden Sie den test_id Rückgabewert von. upload_test_script

    Typ: Zeichenfolge

    Erforderlich: Nein (für skriptbasierte Tests erforderlich)

test_name
  • Human-readable Name für das Testszenario

    Typ: Zeichenfolge

    Erforderlich: Ja

test_description
  • Beschreibung dessen, was dieser Test validiert

    Typ: Zeichenfolge

    Erforderlich: Ja

test_type
  • Art des Tests. simplefür Inline konfigurierte HTTP-Endpunkttests. jmeterk6, oder locust für skriptbasierte Tests, die auf eine hochgeladene Skriptdatei verweisen.

    Typ: Zeichenfolge

    Erforderlich: Ja

test_task_configs
  • Regionale Aufgabenkonfiguration. Jeder Eintrag gibt eine Region, die Anzahl der AWS Fargate-Aufgaben und gleichzeitige virtuelle Benutzer pro Aufgabe an. Gesamtzahl der gleichzeitigen Benutzer für eine Region = ×. task_count concurrency

    Typ: Reihe von Objekten (jeweils mitregion,task_count,concurrency)

    Erforderlich: Ja

test_scenario
  • Testausführungsszenario, das das Lastprofil und die Zielendpunkte definiert. Enthält execution (Ramp-up, Hold-For, Szenarioname) und scenarios (benannte Szenariodefinitionen mit entweder einem requests Array für einfache Tests oder einer script Zeichenfolge für skriptbasierte Tests).

    Typ: Objekt

    Erforderlich: Ja

show_live
  • Ob die Live-Überwachung während der Testausführung aktiviert werden soll.

    Typ: Boolescher Wert

    Standard: false

    Erforderlich: Nein

tags
  • Tags für die Organisation von Testszenarien. Maximal 5 Schlagworte.

    Typ: Zeichenfolgen-Array

    Erforderlich: Nein

native_run_mode
  • Ein Objekt, das den Traffic-Shape-Modus auswählt. Lassen Sie es für den Standardmodus weg, in dem die Lösung die Last steuert. Fügen Sie es für den systemeigenen Modus ein, in dem Ihr hochgeladenes Skript den Ladevorgang steuert. Weitere Informationen findest du unter Traffic-Shape-Modi.

    Typ: Objekt

    Erforderlich: Nein

Der native Modus unterscheidet sich wie folgt vom Standardmodus:

  • Für das Objekt ist ein Feld mit einer Höchstdauer von 24 Stunden erforderlich. max_test_duration_seconds

  • Nur skriptbasierte Tests (jmeterk6, oderlocust) akzeptieren den systemeigenen Modus.

  • Einfache HTTP-Endpunkttests werden immer im Standardmodus ausgeführt.

  • test_task_configsbleibt erforderlich, und jeder Eintrag ist weiterhin erforderlichconcurrency.

  • Eine Anfrage, die concurrency mit „erfolgreich“ abgeschlossen wird, native_run_mode gibt Erfolg zurück.

  • Die Last, die der Test generiert, ist die Last, die Ihr Skript deklariert.

  • Die Gesamtlast pro Region ist die Last Ihres Skripts multipliziert mit. task_count

Antwort

Name Description

testId

Die eindeutige ID des erstellten Tests

testName

Name des Tests

status

Status des Tests (z. B.created)

update_test

Description

Das update_test Tool aktualisiert die Konfiguration eines vorhandenen Testszenarios. Dies ist ein vollständiger Ersatz — die gesamte Testkonfiguration muss bereitgestellt werden, nicht nur geänderte Felder. Der Test darf derzeit nicht ausgeführt werden.

Parameters

Entsprichtcreate_test, außer test_id es ist erforderlich und muss auf einen vorhandenen Test verweisen.

Antwort

Name Description

testId

Die eindeutige ID des aktualisierten Tests

testName

Name des Tests

status

Status des Tests

delete_test

Description

Das delete_test Tool löscht dauerhaft ein Testszenario und alle zugehörigen Daten, einschließlich des Testlaufverlaufs, der Zeitpläne und der Amazon-Dashboards. CloudWatch Diese Aktion kann nicht rückgängig gemacht werden. Der Test darf derzeit nicht ausgeführt werden.

Parameters

test_id
  • Die eindeutige Kennung des Testszenarios

    Typ: Zeichenfolge

    Erforderlich: Ja

Antwort

Name Description

status

Bestätigung der Löschung

start_run

Description

Das start_run Tool startet die Ausführung eines Testszenarios. Der MCP-Server ruft die gespeicherte Konfiguration des Tests ab und löst die Ausführung aus. Kehrt sofort mit Status zurück. queued Wird verwendetget_latest_test_run, um den Abschluss abzufragen.

Parameters

test_id
  • Die eindeutige Kennung des Testszenarios

    Typ: Zeichenfolge

    Erforderlich: Ja

Antwort

Name Description

testId

Die eindeutige ID des Tests

status

Status des Tests (zum Beispielqueued)

stop_run

Description

Das stop_run Tool stoppt einen aktuell laufenden Test. Sendet ein Abbruchsignal an alle laufenden Fargate-Aufgaben. Der Teststatus wechselt zucancelled. Teilergebnisse sind verfügbar unterget_latest_test_run.

Parameters

test_id
  • Die eindeutige Kennung des Testszenarios

    Typ: Zeichenfolge

    Erforderlich: Ja

Antwort

Name Description

status

Bestätigung der Stornierung

create_simple_schedule

Description

Das create_simple_schedule Tool erstellt einen einmaligen geplanten Test, der automatisch an einem bestimmten Datum und zu einer bestimmten Uhrzeit ausgeführt wird. Erfordert alle Standardfelder für die Testkonfiguration sowie Zeitplanfelder.

Parameters

Alle create_test Parameter (mit test_id optionalen, gleichen Regeln) plus:

schedule_date
  • Datum für den geplanten Lauf. Muss in der Zukunft sein.

    Typ: Zeichenfolge (Format:YYYY-MM-DD)

    Erforderlich: Ja

schedule_time
  • Uhrzeit für den geplanten Lauf.

    Typ: Zeichenfolge (Format:HH:MM, 24 Stunden)

    Erforderlich: Ja

schedule_timezone
  • IANA-Zeitzone für die Interpretation von Zeitplänen (z. B.America/New_York,UTC).

    Typ: Zeichenfolge

    Standard: UTC

    Erforderlich: Nein

Antwort

Name Description

testId

Die eindeutige ID des Tests

status

Status des Tests (zum Beispielscheduled)

nextRun

Nächste geplante Ausführungszeit

create_cron_schedule

Description

Das create_cron_schedule Tool erstellt einen wiederkehrenden geplanten Test, der automatisch gemäß einem Cron-Ausdruck ausgeführt wird. Erfordert alle Standardfelder für die Testkonfiguration sowie Cron-Zeitplanfelder.

Parameters

Alle create_test Parameter (mit test_id optionalen, gleichen Regeln) plus:

cron_value
  • Cron-Ausdruck für einen wiederkehrenden Zeitplan. Standardformat mit 5 Feldern (z. 0 9 * * * B. täglich um 9:00 Uhr).

    Typ: Zeichenfolge

    Erforderlich: Ja

recurrence
  • Human-readable Bezeichnung für Wiederholungen (z. B.daily,weekly).

    Typ: Zeichenfolge

    Erforderlich: Ja

cron_expiry_date
  • Datum, an dem der wiederkehrende Zeitplan nicht mehr ausgeführt wird.

    Typ: Zeichenfolge (Format:YYYY-MM-DD)

    Erforderlich: Nein

schedule_timezone
  • IANA-Zeitzone für die Interpretation von Zeitplänen.

    Typ: Zeichenfolge

    Standard: UTC

    Erforderlich: Nein

Antwort

Name Description

testId

Die eindeutige ID des Tests

status

Status des Tests (zum Beispielscheduled)

nextRun

Nächste geplante Ausführungszeit

update_simple_schedule

Description

Das update_simple_schedule Tool aktualisiert die Zeitplankonfiguration für einen vorhandenen einmaligen geplanten Test. Vollständiger Ersatz der Testkonfiguration einschließlich der Zeitplanfelder. Der Test muss sich im scheduled Status befinden.

Parameters

Entsprichtcreate_simple_schedule, test_id ist jedoch erforderlich und muss auf einen vorhandenen geplanten Test verweisen.

Antwort

Entspricht create_simple_schedule.

update_cron_schedule

Description

Das update_cron_schedule Tool aktualisiert die Zeitplankonfiguration für einen vorhandenen wiederkehrenden geplanten Test. Vollständiger Ersatz der Testkonfiguration einschließlich der Cron-Zeitplanfelder. Der Test muss sich im scheduled Status befinden.

Parameters

Entsprichtcreate_cron_schedule, test_id ist jedoch erforderlich und muss auf einen vorhandenen geplanten Test verweisen.

Antwort

Entspricht create_cron_schedule.

upload_test_script

Description

Das upload_test_script Tool lädt eine Skriptdatei (JMeter.jmx, k6, Locust .py oder) hoch, die für .js skriptbasierte Tests erforderlich ist. .zip Muss vor oder für skriptbasierte Tests aufgerufen werden. create_test update_test Gibt ein test_id und script_filename zur Verwendung bei nachfolgenden Werkzeugaufrufen zurück.

Parameters

test_id
  • Die eindeutige Kennung des Testszenarios. Bei neuen Tests weglassen (das System generiert einen). Sorgen Sie dafür, dass vorhandene Tests an den richtigen Ort hochgeladen werden.

    Typ: Zeichenfolge

    Erforderlich: Nein

test_type
  • Testtyp: jmeterk6, oderlocust.

    Typ: Zeichenfolge

    Erforderlich: Ja

file_extension
  • Dateierweiterung:jmx, jspy, oderzip.

    Typ: Zeichenfolge

    Erforderlich: Ja

file_content
  • Base64-encoded Inhalt der Datei.

    Typ: Zeichenfolge

    Erforderlich: Ja

Antwort

Name Description

test_id

Die Test-ID (generiert oder bereitgestellt)

script_filename

Dateiname in S3 (Format:<test_id>.<extension>). Verweisen Sie darauf intest_scenario.scenarios.

Anleitungen zum Arbeitsablauf

Workflow-Leitfäden sind mehrstufige Rezepte, die Agenten dabei helfen, mehrere Tools für gemeinsame Operationen miteinander zu verknüpfen. Das get_workflow_guides Tool gibt eine strukturierte schrittweise Anleitung für jeden Arbeitsablauf zurück.

get_workflow_guides

Description

Das get_workflow_guides Tool gibt schrittweise Workflow-Rezepte für gängige DLT-Operationen mit mehreren Tools zurück. Gibt eine strukturierte Anleitung zurück, welche Tools in welcher Reihenfolge aufgerufen werden müssen und wie die Ergebnisse zwischen den einzelnen Schritten zu interpretieren sind.

Parameters

workflow
  • Der Arbeitsablauf, für den Anleitungen abgerufen werden sollen. Einer von: run_and_monitorbaseline_comparison,schedule_test,create_and_run,update_and_run.

    Typ: Zeichenfolge

    Erforderlich: Ja

Antwort

Name Description

workflow

Workflow-ID

description

Kurze Beschreibung des Zwecks des Workflows

steps

Reihe von Schrittobjekten, jedes mit step (Zahl), action (was zu tun ist), tool (welches MCP-Tool aufgerufen werden soll, oder Null für Schritte, die kein Werkzeug sind) und details (spezifische Anweisungen)

Verfügbare Arbeitsabläufe

run_and_monitor

Startet einen bestehenden Testlauf und fragt ihn bis zum Abschluss ab.

  1. Finden Sie den Test mit list_scenarios oder get_scenario_details

  2. Starten Sie den Testlauf mit start_run

  3. Umfrage zum Abschluss mithilfe von get_latest_test_run (empfohlenes Intervall: 30 Sekunden; behandeln Sie die ersten 404-Fehler 1—3 Minuten lang, während die Amazon Elastic Container Service (Amazon ECS) -Aufgaben gestartet werden)

  4. Ergebnisse melden, sobald ein Terminalstatus erreicht ist (completefailed, odercancelled)

baseline_comparison

Führen Sie einen Test durch und vergleichen Sie die Ergebnisse mit einem gespeicherten Basiswert.

  1. Suchen Sie den Test mit list_scenarios oder get_scenario_details

  2. Starten Sie den Testlauf mit start_run

  3. Zum Abschluss der Umfrage verwenden Sie get_latest_test_run (empfohlenes Intervall: 30 Sekunden)

  4. Rufen Sie den Ausgangswert mithilfe von ab get_baseline_test_run (überspringen Sie den Vergleich, wenn kein Basiswert festgelegt ist)

  5. Vergleichen Sie Metriken (durchschnittliche Antwortzeit, Latenz, Durchsatz, Perzentile, Fehlerrate)

schedule_test

Erstellen Sie einen Test mit einem wiederkehrenden oder einmaligen Zeitplan.

  1. Legen Sie den Zeitplantyp fest (einmalig →create_simple_schedule, wiederkehrend →create_cron_schedule)

  2. Laden Sie das Testskript hoch, falls es skriptbasiert ist upload_test_script

  3. Erstellen Sie den geplanten Test mit vollständiger Konfiguration und Zeitplanfeldern

  4. Stellen Sie sicher, dass der Zeitplan mit get_scenario_details (Häkchen status: scheduled undnextRun) erstellt wurde

Einschränkungen: Mindestintervall von 1 Stunde zwischen wiederkehrenden Läufen, das Intervall muss die Testdauer überschreiten, Cron muss genau einen Minutenwert angeben.

erstellen_und_ausführen

Erstellen Sie einen neuen Test von Grund auf und führen Sie ihn sofort aus.

  1. Laden Sie das Testskript hoch, wenn es skriptbasiert ist upload_test_script

  2. Erstellen Sie den Test mit create_test

  3. Starten Sie den Testlauf start_run mit dem zurückgegebenen test_id

  4. Zum Abschluss der Umfrage verwenden Sie get_latest_test_run (empfohlenes Intervall: 30 Sekunden)

  5. Ergebnisse melden

aktualisieren_und_ausführen

Ändern Sie die Konfiguration eines vorhandenen Tests und führen Sie ihn sofort erneut aus.

  1. Rufen Sie die aktuelle Konfiguration ab mit get_scenario_details

  2. Laden Sie ein neues Skript hoch, wenn Sie das Skript ändern mit upload_test_script

  3. Aktualisieren Sie die Testkonfiguration mit update_test (vollständig ersetzen — alle Felder einbeziehen)

  4. Starten Sie den Testlauf mit start_run

  5. Zum Abschluss der Umfrage verwenden Sie get_latest_test_run (empfohlenes Intervall: 30 Sekunden)

  6. Ergebnisse melden

Anmerkung

Alle MCP-Tools nutzen vorhandene API-Endpunkte. Zur Unterstützung der MCP-Funktionalität sind keine Änderungen an den zugrunde liegenden APIs erforderlich.