View a markdown version of this page

Specifiche degli strumenti MCP - 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à.

Specifiche degli strumenti MCP

La soluzione Distributed Load Testing espone una serie di strumenti MCP che consentono agli agenti di intelligenza artificiale di interagire con scenari e risultati di test. Questi strumenti forniscono funzionalità astratte di alto livello che si allineano al modo in cui gli agenti di intelligenza artificiale elaborano le informazioni, consentendo loro di concentrarsi su analisi e approfondimenti piuttosto che su contratti API dettagliati.

Il server MCP supporta due modalità di accesso, controllate dal parametro AWS: MCPServerAccessMode CloudFormation

  • ReadOnly(impostazione predefinita): vengono registrati solo gli strumenti di lettura. Gli agenti vedono 7 strumenti tramitetools/list. Non sono disponibili operazioni di mutazione.

  • ReadWrite— Entrambi gli strumenti di lettura e scrittura sono registrati. Gli agenti vedono tutti gli strumenti (lettura + scrittura) tramite tools/list e possono creare test, attivare esecuzioni, gestire le pianificazioni e caricare script.

La modalità di accesso è impostata al momento della distribuzione. Per modificare la modalità di accesso dopo la distribuzione iniziale, esegui un aggiornamento CloudFormation dello stack con il nuovo MCPServerAccessMode valore del parametro. La modifica ha effetto al termine dell'aggiornamento dello stack: non sono necessari altri passaggi manuali.

In ReadOnly modalità, gli strumenti di scrittura non sono affatto registrati: gli agenti non li vedono mai. tools/list La policy AWS Identity and Access Management (IAM) sulla funzione AWS Lambda del server MCP è definita di conseguenza. ReadOnly consente solo richieste GET all'API. ReadWrite consente GET, POST, PUT e DELETE.

Strumenti di lettura

list_scenarios

Description

Lo list_scenarios strumento recupera un elenco di tutti gli scenari di test disponibili con metadati di base.

Endpoint

GET /scenarios

Parameters

Nessuno

Risposta

Nome Description

testId

Identificatore univoco per lo scenario di test

testName

Nome dello scenario di test

status

Stato attuale dello scenario di test

startTime

Quando il test è stato creato o eseguito l'ultima volta

testDescription

Descrizione dello scenario di test

get_scenario_details

Description

Lo get_scenario_details strumento recupera la configurazione del test e l'esecuzione del test più recente per un singolo scenario di test.

La risposta riporta la modalità traffic shape dello scenario. Un nativeRunMode oggetto indica la modalità nativa e la sua assenza indica la modalità Standard. Per uno scenario nativoconcurrency, i holdFor campirampUp, e non riflettono il carico generato dall'esecuzione. Il caricamento proviene invece dallo script. Per ulteriori informazioni, consulta le modalità Traffic shape.

Endpoint

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

Parametro di richiesta

test_id
  • L'identificatore univoco per lo scenario di test

    Tipo: stringa

    Obbligatorio: sì

Risposta

Nome Description

testTaskConfigs

Configurazione delle attività per ciascuna regione

testScenario

Definizione e parametri del test

status

Stato attuale del test

startTime

Timestamp di inizio del test

endTime

Timestamp di fine del test (se completato)

list_test_runs

Description

Lo list_test_runs strumento recupera un elenco di esecuzioni di test per uno scenario di test specifico, ordinate dal più recente al più vecchio. Restituisce un massimo di 30 risultati. start_timestampPuò essere fornito solo uno limit o più, non entrambi.

Endpoint

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

or

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

Parametri della richiesta

test_id
  • L'identificatore univoco per lo scenario di test

    Tipo: stringa

    Obbligatorio: sì

limit
  • Numero massimo di esecuzioni di test da restituire. Non può essere utilizzato con start_timestamp.

    Tipo: numero intero

    Impostazione predefinita: 20

    Massimo: 30

    Obbligatorio: no

start_timestamp
  • Restituisce tutte le esecuzioni di test che risalgono a questo timestamp. Non può essere utilizzato con limit.

    Tipo: String (ad esempio, formato data-ora ISO 8601) 2024-01-15T14:30:00.000Z

    Obbligatorio: no

Risposta

Nome Description

testRuns

Serie di riepiloghi delle esecuzioni di test con metriche delle prestazioni e percentili per ogni esecuzione

get_test_run

Description

Lo get_test_run strumento recupera risultati dettagliati per una singola esecuzione di test con suddivisioni regionali ed endpoint.

Endpoint

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

Parametri della richiesta

test_id
  • L'identificatore univoco per lo scenario di test

    Tipo: stringa

    Obbligatorio: sì

test_run_id
  • L'identificatore univoco per l'esecuzione specifica del test

    Tipo: stringa

    Obbligatorio: sì

Risposta

Nome Description

results

Dati completi sull'esecuzione del test, tra cui suddivisione dei risultati regionali, metriche specifiche per gli endpoint, percentili di prestazioni (p50, p90, p95, p99), conteggi di successi e fallimenti, tempi di risposta e latenza e configurazione del test utilizzata per l'esecuzione

get_latest_test_run

Description

Lo get_latest_test_run strumento recupera l'esecuzione del test più recente per uno scenario di test specifico.

Endpoint

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

Nota

I risultati vengono ordinati in base al tempo utilizzando un Global Secondary Index (GSI), in modo da restituire l'esecuzione del test più recente.

Parametro di richiesta

test_id
  • L'identificatore univoco per lo scenario di test

    Tipo: stringa

    Obbligatorio: sì

Risposta

Nome Description

results

Dati di esecuzione del test più recenti con lo stesso formato di get_test_run

get_baseline_test_run

Description

get_baseline_test_runLo strumento recupera l'esecuzione del test di base per uno scenario di test specifico. La baseline viene utilizzata per scopi di confronto delle prestazioni.

Endpoint

GET /scenarios/<test_id>/baseline

Parametro di richiesta

test_id
  • L'identificatore univoco per lo scenario di test

    Tipo: stringa

    Obbligatorio: sì

Risposta

Nome Description

baselineData

Dati di base relativi all'esecuzione del test a scopo di confronto, incluse tutte le metriche e la configurazione dell'esecuzione di base designata

get_test_run_artifacts

Description

Lo get_test_run_artifacts strumento recupera le informazioni del bucket Amazon S3 per accedere agli artefatti dei test, inclusi log, file di errore e risultati.

Endpoint

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

Parametri della richiesta

test_id
  • L'identificatore univoco per lo scenario di test

    Tipo: stringa

    Obbligatorio: sì

test_run_id
  • L'identificatore univoco per l'esecuzione specifica del test

    Tipo: stringa

    Obbligatorio: sì

Risposta

Nome Description

bucketName

Nome del bucket S3 in cui sono archiviati gli artefatti

testRunPath

Prefisso di percorso per l'attuale archiviazione degli artefatti (versione 4.0+)

testScenarioPath

Prefisso di percorso per l'archiviazione degli artefatti precedenti (versione precedente alla 4.0)

Strumenti di scrittura

Gli strumenti di scrittura sono disponibili solo se MCPServerAccessMode è impostato suReadWrite. Consentono agli agenti di creare, modificare ed eseguire scenari di test.

create_test

Description

Lo create_test strumento crea un nuovo scenario di test di carico senza eseguirlo. Il test viene salvato e può essere eseguito in un secondo momento constart_run. Per i test basati su script (jmeter, k6, locust), chiama upload_test_script prima e supera il risultato. test_id

Parameters

test_id
  • L'identificatore univoco dello scenario di test. Ometti per semplici test HTTP (il sistema ne genera uno). Obbligatorio per i test basati su script: utilizza il valore test_id restituito da. upload_test_script

    Tipo: stringa

    Obbligatorio: No (obbligatorio per i test basati su script)

test_name
  • Human-readable nome per lo scenario di test

    Tipo: stringa

    Obbligatorio: sì

test_description
  • Descrizione di ciò che questo test convalida

    Tipo: stringa

    Obbligatorio: sì

test_type
  • Tipo di test. simpleper i test degli endpoint HTTP configurati in linea. jmeterk6, o locust per test basati su script che fanno riferimento a un file di script caricato.

    Tipo: stringa

    Obbligatorio: sì

test_task_configs
  • Configurazione regionale delle attività. Ogni voce specifica una regione, il numero di attività AWS Fargate e utenti virtuali simultanei per attività. Numero totale di utenti simultanei per una regione = ×. task_count concurrency

    Tipo: Matrice di oggetti (ciascuno conregion,task_count,concurrency)

    Obbligatorio: sì

test_scenario
  • Scenario di esecuzione del test che definisce il profilo di carico e gli endpoint di destinazione. Contiene execution (ramp-up, hold-for, nome dello scenario) e scenarios (definizioni di scenario denominate con un requests array per test semplici o una script stringa per test basati su script).

    Tipo: oggetto

    Obbligatorio: sì

show_live
  • Se abilitare il monitoraggio in tempo reale durante l'esecuzione del test.

    Tipo: Booleano

    Impostazione predefinita: false

    Obbligatorio: no

tags
  • Tag per l'organizzazione degli scenari di test. Massimo 5 tag.

    Tipo: array di stringhe

    Obbligatorio: no

native_run_mode
  • Un oggetto che seleziona la modalità Traffic Shape. Omettilo per la modalità Standard, in cui la soluzione controlla il carico. Includilo per la modalità nativa, in cui lo script caricato controlla il caricamento. Per ulteriori informazioni, consulta le modalità Traffic shape.

    Tipo: oggetto

    Obbligatorio: no

La modalità nativa è diversa dalla modalità Standard come segue:

  • L'oggetto richiede un campomax_test_duration_seconds, con un massimo di 24 ore.

  • Solo i test basati su script (jmeterk6, olocust) accettano la modalità nativa.

  • I test HTTP Endpoint semplici vengono sempre eseguiti in modalità Standard.

  • test_task_configsrimane obbligatorio e ogni voce lo richiede concurrency ancora.

  • Una richiesta che viene concurrency impostata native_run_mode con esito positivo.

  • Il carico generato dal test è il carico dichiarato dallo script.

  • Il carico totale per regione è il carico dello script moltiplicato per. task_count

Risposta

Nome Description

testId

L'ID univoco del test creato

testName

Nome del test

status

Stato del test (ad esempio,created)

update_test

Description

Lo update_test strumento aggiorna la configurazione di uno scenario di test esistente. Si tratta di una sostituzione completa: è necessario fornire l'intera configurazione del test, non solo i campi modificati. Il test non deve essere attualmente in esecuzione.

Parameters

Ugualecreate_test, tranne che test_id è obbligatorio e deve fare riferimento a un test esistente.

Risposta

Nome Description

testId

L'ID univoco del test aggiornato

testName

Nome del test

status

Stato del test

delete_test

Description

Lo delete_test strumento elimina definitivamente uno scenario di test e tutti i dati associati, tra cui cronologia delle esecuzioni dei test, pianificazioni e dashboard Amazon. CloudWatch Questa operazione non può essere annullata. Il test non deve essere attualmente in esecuzione.

Parameters

test_id
  • L'identificatore univoco dello scenario di test

    Tipo: stringa

    Obbligatorio: sì

Risposta

Nome Description

status

Conferma della cancellazione

start_run

Description

Lo start_run strumento avvia l'esecuzione di uno scenario di test. Il server MCP recupera la configurazione memorizzata del test e ne attiva l'esecuzione. Ritorna immediatamente con lo stato. queued get_latest_test_runDa utilizzare per eseguire il sondaggio per il completamento.

Parameters

test_id
  • L'identificatore univoco dello scenario di test

    Tipo: stringa

    Obbligatorio: sì

Risposta

Nome Description

testId

L'ID univoco del test

status

Stato del test (ad esempio,queued)

stop_run

Description

Lo stop_run strumento interrompe un test attualmente in esecuzione. Invia un segnale di annullamento a tutte le attività di Fargate in esecuzione. Lo stato del test passa a. cancelled I risultati parziali sono disponibili tramiteget_latest_test_run.

Parameters

test_id
  • L'identificatore univoco dello scenario di test

    Tipo: stringa

    Obbligatorio: sì

Risposta

Nome Description

status

Conferma della cancellazione

create_simple_schedule

Description

Lo create_simple_schedule strumento crea un test pianificato una tantum che viene eseguito automaticamente alla data e all'ora specificate. Richiede tutti i campi di configurazione del test standard più i campi di pianificazione.

Parameters

Tutti create_test i parametri (con regole test_id opzionali), più:

schedule_date
  • Data della corsa pianificata. Deve essere nel futuro.

    Tipo: String (formato:YYYY-MM-DD)

    Obbligatorio: sì

schedule_time
  • Ora della corsa pianificata.

    Tipo: stringa (formato:HH:MM, 24 ore)

    Obbligatorio: sì

schedule_timezone
  • Fuso orario IANA per l'interpretazione della pianificazione (ad esempioAmerica/New_York,UTC).

    Tipo: stringa

    Impostazione predefinita: UTC

    Obbligatorio: no

Risposta

Nome Description

testId

L'ID univoco del test

status

Stato del test (ad esempio,scheduled)

nextRun

Prossima ora di esecuzione pianificata

create_cron_schedule

Description

Lo create_cron_schedule strumento crea un test programmato ricorrente che viene eseguito automaticamente in base a un'espressione cron. Richiede tutti i campi di configurazione del test standard più i campi di pianificazione cron.

Parameters

Tutti i create_test parametri (con le stesse regole test_id opzionali), più:

cron_value
  • Espressione Cron per la pianificazione ricorrente. Formato standard a 5 campi (ad esempio, 0 9 * * * per tutti i giorni alle 9:00).

    Tipo: stringa

    Obbligatorio: sì

recurrence
  • Human-readable etichetta di ricorrenza (ad esempio,). daily weekly

    Tipo: stringa

    Obbligatorio: sì

cron_expiry_date
  • Data in cui la pianificazione ricorrente interrompe l'esecuzione.

    Tipo: String (formato:) YYYY-MM-DD

    Obbligatorio: no

schedule_timezone
  • Fuso orario IANA per l'interpretazione degli orari.

    Tipo: stringa

    Impostazione predefinita: UTC

    Obbligatorio: no

Risposta

Nome Description

testId

L'ID univoco del test

status

Stato del test (ad esempio,scheduled)

nextRun

Prossima ora di esecuzione pianificata

update_simple_schedule

Description

Lo update_simple_schedule strumento aggiorna la configurazione della pianificazione per un test pianificato una tantum esistente. Sostituzione completa della configurazione del test, inclusi i campi di pianificazione. Il test deve essere in scheduled stato.

Parameters

Ugualecreate_simple_schedule, tranne che test_id è obbligatorio e deve fare riferimento a un test programmato esistente.

Risposta

Come create_simple_schedule.

update_cron_schedule

Description

Lo update_cron_schedule strumento aggiorna la configurazione della pianificazione per un test programmato ricorrente esistente. Sostituzione completa della configurazione del test, inclusi i campi di pianificazione cron. Il test deve essere in scheduled stato.

Parameters

Ugualecreate_cron_schedule, tranne che test_id è obbligatorio e deve fare riferimento a un test programmato esistente.

Risposta

Come create_cron_schedule.

upload_test_script

Description

Lo upload_test_script strumento carica un file di script (JMeter.jmx, k6.js, .py Locust o) necessario per i test basati su script. .zip Deve essere chiamato prima create_test o per i test basati su script. update_test Restituisce un valore test_id e script_filename da utilizzare nelle successive chiamate allo strumento.

Parameters

test_id
  • L'identificatore univoco dello scenario di test. Ometti per i nuovi test (il sistema ne genera uno). Fornisci il caricamento dei test esistenti nella posizione corretta.

    ▬Tipo: stringa

    Obbligatorio: no

test_type
  • Tipo di test:jmeter,k6, olocust.

    Tipo: stringa

    Obbligatorio: sì

file_extension
  • Estensione del file: jmxjs,py,, ozip.

    Tipo: stringa

    Obbligatorio: sì

file_content
  • Base64-encoded contenuto del file.

    Tipo: stringa

    Obbligatorio: sì

Risposta

Nome Description

test_id

L'ID del test (generato o fornito)

script_filename

Nome del file in S3 (formato:). <test_id>.<extension> Fai riferimento a questo in. test_scenario.scenarios

Guide al workflow

Le guide al flusso di lavoro sono ricette in più fasi che aiutano gli agenti a collegare più strumenti per operazioni comuni. Lo get_workflow_guides strumento fornisce una guida dettagliata strutturata per ogni flusso di lavoro.

get_workflow_guides

Description

Lo get_workflow_guides strumento restituisce ricette dettagliate del flusso di lavoro per le comuni operazioni DLT con più strumenti. Restituisce una guida strutturata su quali strumenti chiamare, in quale ordine e su come interpretare i risultati tra una fase e l'altra.

Parameters

workflow
  • Il flusso di lavoro per il quale recuperare le indicazioni. Uno dei:run_and_monitor,,baseline_comparison, schedule_testcreate_and_run,update_and_run.

    Tipo: stringa

    Obbligatorio: sì

Risposta

Nome Description

workflow

Identificatore del flusso di lavoro

description

Breve descrizione dello scopo del flusso di lavoro

steps

Matrice di oggetti di fase, ciascuno con step (numero), action (cosa fare), tool (quale strumento MCP chiamare o nullo per passaggi non relativi allo strumento) e details (istruzioni specifiche)

Flussi di lavoro disponibili

run_and_monitor

Avvia un test ed esegui il polling fino al completamento.

  1. Trova il test usando list_scenarios o get_scenario_details

  2. Inizia l'esecuzione del test utilizzando start_run

  3. Verifica il completamento utilizzando get_latest_test_run (intervallo consigliato: 30 secondi; gestisci il 404 iniziale per 1-3 minuti durante l'avvio delle attività di Amazon Elastic Container Service (Amazon ECS))

  4. Riporta i risultati una volta raggiunto lo stato del terminale (complete,, o) failed cancelled

baseline_comparison

Esegui un test e confronta i risultati con una baseline memorizzata.

  1. Trova il test utilizzando list_scenarios o get_scenario_details

  2. Inizia l'esecuzione del test utilizzando start_run

  3. Sondaggio per il completamento utilizzando get_latest_test_run (intervallo consigliato: 30 secondi)

  4. Recupera la linea di base utilizzando get_baseline_test_run (salta il confronto se non è impostata alcuna linea di base)

  5. Confronta le metriche (tempo di risposta medio, latenza, velocità effettiva, percentili, tasso di errore)

schedule_test

Crea un test con una pianificazione ricorrente o una tantum.

  1. Determina il tipo di pianificazione (una tantum →, ricorrente →create_simple_schedule) create_cron_schedule

  2. Carica lo script di test se basato su script utilizzando upload_test_script

  3. Crea il test pianificato con la configurazione completa e i campi di pianificazione

  4. Verifica che la pianificazione sia stata creata utilizzando get_scenario_details (check status: scheduled andnextRun)

Vincoli: intervallo minimo di 1 ora tra le esecuzioni ricorrenti, l'intervallo deve superare la durata del test, cron deve specificare esattamente un valore di un minuto.

create_and_run

Crea un nuovo test da zero ed eseguilo immediatamente.

  1. Carica lo script di test se basato su script utilizzando upload_test_script

  2. Crea il test usando create_test

  3. Inizia l'esecuzione del test utilizzando start_run with the return test_id

  4. Sondaggio per il completamento utilizzando get_latest_test_run (intervallo consigliato: 30 secondi)

  5. Segnala i risultati

update_and_run

Modifica la configurazione di un test esistente e rieseguilo immediatamente.

  1. Recupera la configurazione corrente utilizzando get_scenario_details

  2. Carica un nuovo script se lo modifichi utilizzando upload_test_script

  3. Aggiorna la configurazione del test utilizzando update_test (sostituzione completa: include tutti i campi)

  4. Avviare l'esecuzione del test utilizzando start_run

  5. Sondaggio per il completamento utilizzando get_latest_test_run (intervallo consigliato: 30 secondi)

  6. Segnala i risultati

Nota

Tutti gli strumenti MCP sfruttano gli endpoint API esistenti. Non sono necessarie modifiche alle API sottostanti per supportare la funzionalità MCP.