View a markdown version of this page

Spesifikasi alat MCP - Pengujian Beban Terdistribusi di AWS

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Spesifikasi alat MCP

Solusi Distributed Load Testing mengekspos seperangkat alat MCP yang memungkinkan agen AI berinteraksi dengan skenario dan hasil pengujian. Alat ini menyediakan kemampuan abstrak tingkat tinggi yang selaras dengan cara agen AI memproses informasi, memungkinkan mereka untuk fokus pada analisis dan wawasan daripada kontrak API terperinci.

Server MCP mendukung dua mode akses, dikendalikan oleh CloudFormation parameter MCPServerAccessMode AWS:

  • ReadOnly(default) — Hanya alat baca yang terdaftar. Agen melihat 7 alat melaluitools/list. Tidak ada operasi mutasi yang tersedia.

  • ReadWrite— Alat baca dan tulis terdaftar. Agen melihat semua alat (baca + tulis) melalui tools/list dan dapat membuat tes, memicu proses, mengelola jadwal, dan mengunggah skrip.

Mode akses diatur pada waktu penerapan. Untuk mengubah mode akses setelah penerapan awal, lakukan pembaruan CloudFormation tumpukan dengan nilai MCPServerAccessMode parameter baru. Perubahan akan berlaku saat pembaruan tumpukan selesai — tidak ada langkah manual lainnya yang diperlukan.

Dalam ReadOnly mode, alat tulis tidak terdaftar sama sekali — agen tidak pernah melihatnyatools/list. Kebijakan AWS Identity and Access Management (IAM) pada fungsi AWS Lambda Server MCP dicakup sesuai dengan itu. ReadOnly hanya mengizinkan permintaan GET ke API. ReadWrite mengizinkan GET, POST, PUT, dan DELETE.

Baca alat

daftar skenario

Deskripsi

list_scenariosAlat ini mengambil daftar semua skenario pengujian yang tersedia dengan metadata dasar.

Titik akhir

GET /scenarios

Parameter

Tidak ada

Respons

Nama Deskripsi

testId

Pengidentifikasi unik untuk skenario pengujian

testName

Nama skenario pengujian

status

Status skenario pengujian saat ini

startTime

Saat pengujian dibuat atau terakhir dijalankan

testDescription

Deskripsi skenario pengujian

dapatkan_detail_skenario

Deskripsi

get_scenario_detailsAlat ini mengambil konfigurasi pengujian dan uji coba terbaru untuk skenario pengujian tunggal.

Respons melaporkan mode bentuk lalu lintas skenario. Sebuah nativeRunMode objek menunjukkan mode Asli, dan ketidakhadirannya menunjukkan mode Standar. Untuk skenario Asliconcurrency, holdFor bidangrampUp,, dan tidak mencerminkan beban yang dihasilkan proses. Beban berasal dari skrip sebagai gantinya. Untuk informasi selengkapnya, lihat Mode bentuk lalu lintas.

Titik akhir

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

Parameter permintaan

test_id
  • Pengidentifikasi unik untuk skenario pengujian

    Tipe: String

    Diperlukan: Ya

Respons

Nama Deskripsi

testTaskConfigs

Konfigurasi tugas untuk setiap Wilayah

testScenario

Definisi dan parameter uji

status

Status tes saat ini

startTime

Uji stempel waktu mulai

endTime

Stempel waktu akhir uji (jika selesai)

daftar_test_run

Deskripsi

list_test_runsAlat ini mengambil daftar uji coba untuk skenario pengujian tertentu, diurutkan terbaru hingga terlama. Mengembalikan maksimal 30 hasil. Hanya satu dari limit atau start_timestamp dapat disediakan, bukan keduanya.

Titik akhir

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

atau

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

Permintaan parameter

test_id
  • Pengidentifikasi unik untuk skenario pengujian

    Tipe: String

    Diperlukan: Ya

limit
  • Jumlah maksimum uji coba yang akan dikembalikan. Tidak dapat digunakan dengan start_timestamp.

    Jenis: Integer

    Default: 20

    Maksimum: 30

    Wajib: Tidak

start_timestamp
  • Kembalikan semua uji coba kembali ke stempel waktu ini. Tidak dapat digunakan dengan limit.

    Jenis: String (format tanggal-waktu ISO 8601, misalnya) 2024-01-15T14:30:00.000Z

    Wajib: Tidak

Respons

Nama Deskripsi

testRuns

Array ringkasan uji coba dengan metrik kinerja dan persentil untuk setiap proses

dapat_test_jalankan

Deskripsi

get_test_runAlat ini mengambil hasil terperinci untuk uji coba tunggal dengan rincian regional dan titik akhir.

Titik akhir

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

Permintaan parameter

test_id
  • Pengidentifikasi unik untuk skenario pengujian

    Tipe: String

    Diperlukan: Ya

test_run_id
  • Pengidentifikasi unik untuk uji coba tertentu

    Tipe: String

    Diperlukan: Ya

Respons

Nama Deskripsi

results

Data uji coba lengkap termasuk rincian hasil regional, metrik spesifik titik akhir, persentil kinerja (p50, p90, p95, p99), jumlah keberhasilan dan kegagalan, waktu respons dan latensi, dan konfigurasi pengujian yang digunakan untuk menjalankan

dapat_test_terbaru_jalankan

Deskripsi

get_latest_test_runAlat ini mengambil uji coba terbaru untuk skenario pengujian tertentu.

Titik akhir

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

catatan

Hasil diurutkan berdasarkan waktu menggunakan Global Secondary Index (GSI), sehingga uji coba terbaru dikembalikan.

Parameter permintaan

test_id
  • Pengidentifikasi unik untuk skenario pengujian

    Tipe: String

    Diperlukan: Ya

Respons

Nama Deskripsi

results

Data uji coba terbaru dengan format yang sama seperti get_test_run

dapatkan_daseline_test_jalankan

Deskripsi

get_baseline_test_runAlat ini mengambil uji coba dasar untuk skenario pengujian tertentu. Baseline digunakan untuk tujuan perbandingan kinerja.

Titik akhir

GET /scenarios/<test_id>/baseline

Parameter permintaan

test_id
  • Pengidentifikasi unik untuk skenario pengujian

    Tipe: String

    Diperlukan: Ya

Respons

Nama Deskripsi

baselineData

Data uji coba dasar untuk tujuan perbandingan, termasuk semua metrik dan konfigurasi dari pengoperasian baseline yang ditunjuk

dapatkan_test_run_artefak

Deskripsi

get_test_run_artifactsAlat ini mengambil informasi bucket Amazon S3 untuk mengakses artefak pengujian termasuk log, file kesalahan, dan hasil.

Titik akhir

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

Permintaan parameter

test_id
  • Pengidentifikasi unik untuk skenario pengujian

    Tipe: String

    Diperlukan: Ya

test_run_id
  • Pengidentifikasi unik untuk uji coba tertentu

    Tipe: String

    Diperlukan: Ya

Respons

Nama Deskripsi

bucketName

Nama bucket S3 tempat artefak disimpan

testRunPath

Awalan jalur untuk penyimpanan artefak saat ini (versi 4.0+)

testScenarioPath

Awalan jalur untuk penyimpanan artefak lama (pra-versi 4.0)

Alat tulis

Alat tulis hanya tersedia bila dis MCPServerAccessMode etel keReadWrite. Mereka memungkinkan agen untuk membuat, memodifikasi, dan menjalankan skenario pengujian.

buat_uji

Deskripsi

create_testAlat ini membuat skenario uji beban baru tanpa mengeksekusinya. Tes disimpan dan dapat dijalankan nanti denganstart_run. Untuk pengujian berbasis skrip (jmeter, k6, locust), panggil terlebih dahulu dan lewati yang dikembalikanupload_test_script. test_id

Parameter

test_id
  • Pengidentifikasi unik skenario pengujian. Hilangkan untuk tes HTTP sederhana (sistem menghasilkan satu). Diperlukan untuk pengujian berbasis skrip — gunakan yang test_id dikembalikan oleh. upload_test_script

    Tipe: String

    Diperlukan: Tidak (diperlukan untuk tes berbasis skrip)

test_name
  • Human-readable nama untuk skenario pengujian

    Tipe: String

    Diperlukan: Ya

test_description
  • Deskripsi tentang apa yang divalidasi tes ini

    Tipe: String

    Diperlukan: Ya

test_type
  • Jenis tes. simpleuntuk pengujian titik akhir HTTP yang dikonfigurasi sebaris. jmeter,k6, atau locust untuk pengujian berbasis skrip yang mereferensikan file skrip yang diunggah.

    Tipe: String

    Diperlukan: Ya

test_task_configs
  • Konfigurasi tugas regional. Setiap entri menentukan Wilayah, jumlah tugas AWS Fargate, dan pengguna virtual bersamaan per tugas. Total pengguna bersamaan untuk Wilayah = task_count ×concurrency.

    Jenis: Array objek (masing-masing denganregion,task_count,concurrency)

    Wajib: Ya

test_scenario
  • Skenario eksekusi uji yang mendefinisikan profil beban dan titik akhir target. Ber execution isi (ramp-up, hold-for, nama skenario) dan scenarios (definisi skenario bernama dengan requests array untuk pengujian sederhana atau script string untuk pengujian berbasis skrip).

    Tipe: Objek

    Wajib: Ya

show_live
  • Apakah akan mengaktifkan pemantauan langsung selama eksekusi pengujian.

    Jenis: Boolean

    Default: false

    Wajib: Tidak

tags
  • Tag untuk mengatur skenario pengujian. Maksimal 5 tag.

    Tipe: Array string

    Wajib: Tidak

native_run_mode
  • Objek yang memilih mode bentuk lalu lintas. Hilangkan untuk mode Standar, di mana solusi mengontrol beban. Sertakan untuk mode Asli, di mana skrip yang Anda unggah mengontrol beban. Untuk informasi selengkapnya, lihat Mode bentuk lalu lintas.

    Tipe: Objek

    Wajib: Tidak

Mode asli berbeda dari mode Standar sebagai berikut:

  • Objek membutuhkan satu bidangmax_test_duration_seconds,, dengan maksimal 24 jam.

  • Hanya tes berbasis skrip (jmeter,k6, ataulocust) yang menerima mode Asli.

  • Tes HTTP Endpoint sederhana selalu berjalan dalam mode Standar.

  • test_task_configstetap diperlukan, dan setiap entri masih membutuhkanconcurrency.

  • Permintaan yang ditetapkan concurrency dengan pengem native_run_mode balian sukses.

  • Beban yang dihasilkan tes adalah beban yang dinyatakan skrip Anda.

  • Total beban per Wilayah adalah beban skrip Anda dikalikan dengantask_count.

Respons

Nama Deskripsi

testId

ID unik dari tes yang dibuat

testName

Nama tes

status

Status tes (misalnya,created)

perbaruan_uji

Deskripsi

update_testAlat memperbarui konfigurasi skenario pengujian yang ada. Ini adalah penggantian penuh - seluruh konfigurasi pengujian harus disediakan, bukan hanya bidang yang diubah. Tes tidak boleh berjalan saat ini.

Parameter

Sama seperticreate_test, kecuali test_id diperlukan dan harus mereferensikan tes yang ada.

Respons

Nama Deskripsi

testId

ID unik dari pengujian yang diperbarui

testName

Nama tes

status

Status tes

delete_test

Deskripsi

delete_testAlat ini secara permanen menghapus skenario pengujian dan semua data terkait termasuk riwayat uji coba, jadwal, dan dasbor Amazon CloudWatch . Tindakan ini tidak dapat dibatalkan. Tes tidak boleh berjalan saat ini.

Parameter

test_id
  • Pengidentifikasi unik skenario pengujian

    Tipe: String

    Diperlukan: Ya

Respons

Nama Deskripsi

status

Konfirmasi penghapusan

mulai_jalankan

Deskripsi

start_runAlat memulai eksekusi skenario pengujian. Server MCP mengambil konfigurasi pengujian yang disimpan dan memicu eksekusi. Segera kembali dengan statusqueued. Gunakan get_latest_test_run untuk polling untuk penyelesaian.

Parameter

test_id
  • Pengidentifikasi unik skenario pengujian

    Tipe: String

    Diperlukan: Ya

Respons

Nama Deskripsi

testId

ID unik dari tes

status

Status tes (misalnya,queued)

stop_run

Deskripsi

stop_runAlat menghentikan tes yang sedang berjalan. Mengirim sinyal pembatalan ke semua tugas Fargate yang sedang berjalan. Status pengujian bertransisi kecancelled. Hasil sebagian tersedia melaluiget_latest_test_run.

Parameter

test_id
  • Pengidentifikasi unik skenario pengujian

    Tipe: String

    Diperlukan: Ya

Respons

Nama Deskripsi

status

Konfirmasi pembatalan

buat_jadwal_sederhana

Deskripsi

create_simple_scheduleAlat ini membuat pengujian terjadwal satu kali yang berjalan secara otomatis pada tanggal dan waktu tertentu. Memerlukan semua bidang konfigurasi pengujian standar ditambah bidang jadwal.

Parameter

Semua create_test parameter (dengan test_id opsional, aturan yang sama), ditambah:

schedule_date
  • Tanggal untuk dijadwalkan dijalankan. Harus di masa depan.

    Jenis: String (format:YYYY-MM-DD)

    Wajib: Ya

schedule_time
  • Waktu untuk lari yang dijadwalkan.

    Jenis: String (format:HH:MM, 24 jam)

    Wajib: Ya

schedule_timezone
  • Zona waktu IANA untuk interpretasi jadwal (misalnya,America/New_York,UTC).

    Tipe: String

    Default: UTC

    Wajib: Tidak

Respons

Nama Deskripsi

testId

ID unik dari tes

status

Status tes (misalnya,scheduled)

nextRun

Waktu eksekusi terjadwal berikutnya

buat_cron_jadwal

Deskripsi

create_cron_scheduleAlat ini membuat pengujian terjadwal berulang yang berjalan secara otomatis sesuai dengan ekspresi cron. Memerlukan semua bidang konfigurasi pengujian standar ditambah bidang jadwal cron.

Parameter

Semua create_test parameter (dengan test_id opsional, aturan yang sama), ditambah:

cron_value
  • Ekspresi Cron untuk jadwal berulang. Format 5-bidang standar (misalnya, 0 9 * * * untuk setiap hari pukul 9:00 pagi).

    Tipe: String

    Diperlukan: Ya

recurrence
  • Human-readable label pengulangan (misalnya,daily,weekly).

    Tipe: String

    Diperlukan: Ya

cron_expiry_date
  • Tanggal saat jadwal berulang berhenti dijalankan.

    Jenis: String (format:YYYY-MM-DD)

    Wajib: Tidak

schedule_timezone
  • Zona waktu IANA untuk interpretasi jadwal.

    Tipe: String

    Default: UTC

    Wajib: Tidak

Respons

Nama Deskripsi

testId

ID unik dari tes

status

Status tes (misalnya,scheduled)

nextRun

Waktu eksekusi terjadwal berikutnya

perbaru_jadwal_sederhana

Deskripsi

update_simple_scheduleAlat memperbarui konfigurasi jadwal untuk pengujian terjadwal satu kali yang ada. Penggantian penuh konfigurasi pengujian termasuk bidang jadwal. Tes harus dalam scheduled status.

Parameter

Sama seperticreate_simple_schedule, kecuali test_id diperlukan dan harus mereferensikan tes terjadwal yang ada.

Respons

Sama seperticreate_simple_schedule.

update_cron_jadwal

Deskripsi

update_cron_scheduleAlat memperbarui konfigurasi jadwal untuk pengujian terjadwal berulang yang ada. Penggantian penuh konfigurasi pengujian termasuk bidang jadwal cron. Tes harus dalam scheduled status.

Parameter

Sama seperticreate_cron_schedule, kecuali test_id diperlukan dan harus mereferensikan tes terjadwal yang ada.

Respons

Sama seperticreate_cron_schedule.

unggah_test_skrip

Deskripsi

upload_test_scriptAlat mengunggah file skrip (JMeter.jmx, k6, Locust .js.py, atau.zip) yang diperlukan untuk pengujian berbasis skrip. Harus dipanggil sebelum create_test atau update_test untuk tes berbasis skrip. Mengembalikan test_id a dan script_filename untuk digunakan dalam panggilan alat berikutnya.

Parameter

test_id
  • Pengidentifikasi unik skenario pengujian. Hilangkan untuk tes baru (sistem menghasilkan satu). Berikan pengujian yang ada untuk diunggah ke lokasi yang benar.

    Tipe: String

    Wajib: Tidak

test_type
  • Jenis tes:jmeter,k6, ataulocust.

    Tipe: String

    Diperlukan: Ya

file_extension
  • Ekstensi file: jmxjs,py,, atauzip.

    Tipe: String

    Diperlukan: Ya

file_content
  • Base64-encoded konten file.

    Tipe: String

    Diperlukan: Ya

Respons

Nama Deskripsi

test_id

ID tes (dihasilkan atau disediakan)

script_filename

Nama file dalam S3 (format:<test_id>.<extension>). Referensikan ini ditest_scenario.scenarios.

Panduan alur kerja

Panduan alur kerja adalah resep multi-langkah yang membantu agen merangkai beberapa alat bersama untuk operasi umum. get_workflow_guidesAlat mengembalikan panduan langkah demi langkah terstruktur untuk setiap alur kerja.

get_workflow_guides

Deskripsi

get_workflow_guidesAlat ini mengembalikan resep alur kerja langkah demi langkah untuk operasi DLT multi-alat umum. Mengembalikan panduan terstruktur tentang alat mana yang akan dipanggil, dalam urutan apa, dan bagaimana menafsirkan hasil antar langkah.

Parameter

workflow
  • Alur kerja untuk mengambil panduan. Salah satu dari:run_and_monitor,baseline_comparison,schedule_test,create_and_run,update_and_run.

    Tipe: String

    Diperlukan: Ya

Respons

Nama Deskripsi

workflow

Pengidentifikasi alur kerja

description

Deskripsi singkat tentang tujuan alur kerja

steps

Array objek langkah, masing-masing dengan step (angka), action (apa yang harus dilakukan), tool (alat MCP mana yang akan dipanggil, atau null untuk langkah non-alat), dan details (instruksi khusus)

Alur kerja yang tersedia

jalankan dan_monitor

Mulai uji coba yang ada dan jajak pendapat sampai selesai.

  1. Temukan tes menggunakan list_scenarios atau get_scenario_details

  2. Mulai uji coba menggunakan start_run

  3. Polling untuk penyelesaian menggunakan get_latest_test_run (interval yang disarankan: 30 detik; tangani 404 awal selama 1-3 menit saat tugas Amazon Elastic Container Service (Amazon ECS) diluncurkan)

  4. Laporkan hasil setelah status terminal tercapai (complete,failed, ataucancelled)

baseline_perbandingan

Jalankan pengujian dan bandingkan hasil dengan baseline yang disimpan.

  1. Temukan tes menggunakan list_scenarios atau get_scenario_details

  2. Mulai uji coba menggunakan start_run

  3. Polling untuk penyelesaian menggunakan get_latest_test_run (interval yang disarankan: 30 detik)

  4. Ambil garis dasar menggunakan get_baseline_test_run (lewati perbandingan jika tidak ada garis dasar yang ditetapkan)

  5. Bandingkan metrik (waktu respons rata-rata, latensi, throughput, persentil, tingkat kesalahan)

jadwal_test

Buat tes dengan jadwal berulang atau satu kali.

  1. Tentukan jenis jadwal (satu kali →create_simple_schedule, berulang →create_cron_schedule)

  2. Unggah skrip uji jika menggunakan berbasis skrip upload_test_script

  3. Buat pengujian terjadwal dengan konfigurasi penuh ditambah bidang jadwal

  4. Verifikasi jadwal dibuat menggunakan get_scenario_details (cek status: scheduled dannextRun)

Kendala: interval minimum 1 jam antara proses berulang, interval harus melebihi durasi pengujian, cron harus menentukan tepat nilai satu menit.

buat_dan_jalankan

Buat tes baru dari awal dan segera jalankan.

  1. Unggah skrip uji jika menggunakan berbasis skrip upload_test_script

  2. Buat tes menggunakan create_test

  3. Mulai uji coba menggunakan start_run dengan yang dikembalikan test_id

  4. Polling untuk penyelesaian menggunakan get_latest_test_run (interval yang disarankan: 30 detik)

  5. Laporkan hasil

perbaru_dan_jalankan

Ubah konfigurasi pengujian yang ada dan segera jalankan kembali.

  1. Ambil konfigurasi saat ini menggunakan get_scenario_details

  2. Unggah skrip baru jika mengubah skrip menggunakan upload_test_script

  3. Perbarui konfigurasi pengujian menggunakan update_test (ganti penuh - sertakan semua bidang)

  4. Mulai uji coba menggunakan start_run

  5. Polling untuk penyelesaian menggunakan get_latest_test_run (interval yang disarankan: 30 detik)

  6. Laporkan hasil

catatan

Semua alat MCP memanfaatkan titik akhir API yang ada. Tidak diperlukan modifikasi pada API yang mendasarinya untuk mendukung fungsionalitas MCP.