API pengujian beban terdistribusi - 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.

API pengujian beban terdistribusi

Solusi pengujian beban ini membantu Anda mengekspos data hasil pengujian dengan cara yang aman. API bertindak sebagai “pintu depan” untuk akses ke data pengujian yang disimpan di Amazon DynamoDB. Anda juga dapat menggunakan APIs untuk mengakses fungsionalitas tambahan apa pun yang Anda buat ke dalam solusi.

Solusi ini menggunakan kumpulan pengguna Amazon Cognito yang terintegrasi dengan Amazon API Gateway untuk identifikasi dan otorisasi. Ketika kumpulan pengguna digunakan dengan API, klien hanya diperbolehkan memanggil metode yang diaktifkan kumpulan pengguna setelah mereka memberikan token identitas yang valid.

Untuk informasi selengkapnya tentang menjalankan pengujian secara langsung melalui API, lihat Permintaan Penandatanganan di dokumentasi Referensi API REST API Amazon API Gateway.

Operasi berikut tersedia di API solusi.

catatan

Untuk informasi lebih lanjut tentang testScenario dan parameter lainnya, lihat skenario dan contoh payload di GitHub repositori.

Info Tumpukan

Skenario

Uji Berjalan

Baseline

Tugas

Daerah

DAPATKAN /tumpukan-info

Deskripsi

GET /stack-infoOperasi mengambil informasi tentang tumpukan yang digunakan termasuk waktu pembuatan, wilayah, dan versi. Endpoint ini digunakan oleh front-end.

Respons

200 - Sukses

Nama Deskripsi

created_time

Stempel waktu ISO 8601 saat tumpukan dibuat (misalnya,) 2025-09-09T19:40:22Z

region

Wilayah AWS tempat tumpukan digunakan (misalnya,us-east-1)

version

Versi solusi yang diterapkan (misalnya,v4.0.0)

Tanggapan Kesalahan

  • 403- Terlarang: Izin tidak cukup untuk mengakses informasi tumpukan

  • 404- Tidak ditemukan: Informasi tumpukan tidak tersedia

  • 500- Kesalahan server internal

DAPATKAN /skenario

Deskripsi

GET /scenariosOperasi ini memungkinkan Anda untuk mengambil daftar skenario pengujian.

Respons

Nama Deskripsi

data

Daftar skenario termasuk ID, nama, deskripsi, status, waktu berjalan, tag, total run, dan run terakhir untuk setiap pengujian

POST/skenario

Deskripsi

POST /scenariosOperasi ini memungkinkan Anda untuk membuat atau menjadwalkan skenario pengujian.

Isi permintaan

Nama Deskripsi

testName

Nama tes

testDescription

Deskripsi tes

testTaskConfigs

Objek yang menentukan concurrency (jumlah paralel berjalan), taskCount (jumlah tugas yang diperlukan untuk menjalankan pengujian), dan region untuk skenario

testScenario

Definisi tes termasuk konkurensi, waktu pengujian, host, dan metode untuk pengujian

testType

Jenis tes (misalnya,simple,jmeter)

fileType

Jenis file upload (misalnya,none,script,zip)

tags

Sebuah array string untuk mengkategorikan tes. Bidang opsional dengan panjang maksimum 5 (misalnya,["blue", "3.0", "critical"])

scheduleDate

Tanggal untuk menjalankan tes. Hanya disediakan jika menjadwalkan tes (misalnya,2021-02-28)

scheduleTime

Waktu untuk menjalankan tes. Hanya disediakan jika menjadwalkan tes (misalnya,21:07)

scheduleStep

Langkah dalam proses jadwal. Hanya disediakan jika menjadwalkan tes berulang. (Langkah-langkah yang tersedia termasuk create danstart)

cronvalue

Nilai cron untuk menyesuaikan penjadwalan berulang. Jika digunakan, hilangkan scheduleDate dan ScheduleTime.

cronExpiryDate

Tanggal yang diperlukan sehingga cron kedaluwarsa dan tidak berjalan tanpa batas waktu.

recurrence

Terulangnya tes terjadwal. Hanya disediakan jika menjadwalkan tes berulang (misalnya,,, daily weeklybiweekly, atau) monthly

Respons

Nama Deskripsi

testId

ID unik dari tes

testName

Nama tes

status

Status tes

PILIHAN/skenario

Deskripsi

OPTIONS /scenariosOperasi ini memberikan respons untuk permintaan dengan header respons CORS yang benar.

Respons

Nama Deskripsi

testId

ID unik dari tes

testName

Nama tes

status

Status tes

DAPATKAN /scenarios/ {teSid}

Deskripsi

GET /scenarios/{testId}Operasi ini memungkinkan Anda untuk mengambil rincian skenario pengujian tertentu.

Permintaan parameter

testId
  • ID unik dari tes

    Tipe: String

    Diperlukan: Ya

latest
  • Parameter kueri untuk mengembalikan hanya uji coba terbaru. Default adalah true

    Tipe: Boolean

    Wajib: Tidak

history
  • Parameter kueri untuk menyertakan riwayat uji coba dalam respons. Default-nya adalah true. Setel false untuk mengecualikan riwayat

    Tipe: Boolean

    Wajib: Tidak

Respons

Nama Deskripsi

testId

ID unik dari tes

testName

Nama tes

testDescription

Deskripsi tes

testType

Jenis pengujian yang dijalankan (misalnya,simple,jmeter)

fileType

Jenis file yang diunggah (misalnya,, nonescript,zip)

tags

Array string untuk mengkategorikan tes

status

Status tes

startTime

Waktu dan tanggal ketika tes terakhir dimulai

endTime

Waktu dan tanggal ketika tes terakhir berakhir

testScenario

Definisi tes termasuk konkurensi, waktu pengujian, host, dan metode untuk pengujian

taskCount

Jumlah tugas yang dibutuhkan untuk menjalankan tes

taskIds

Daftar tugas IDs untuk menjalankan tes

results

Hasil akhir dari tes

history

Daftar hasil akhir dari tes sebelumnya (dikecualikan saathistory=false)

totalRuns

Jumlah total uji coba untuk skenario ini

lastRun

Stempel waktu dari uji coba terakhir

errorReason

Pesan galat yang dihasilkan saat terjadi kesalahan

nextRun

Jalankan terjadwal berikutnya (misalnya,2017-04-22 17:18:00)

scheduleRecurrence

Pengulangan tes (misalnya,,daily, weeklybiweekly,monthly)

POSTING /scenarios/ {TESid}

Deskripsi

POST /scenarios/{testId}Operasi ini memungkinkan Anda untuk membatalkan skenario pengujian tertentu.

Parameter permintaan

testId
  • ID unik dari tes

    Tipe: String

    Diperlukan: Ya

Respons

Nama Deskripsi

status

Status tes

HAPUS /scenarios/ {TESid}

Deskripsi

DELETE /scenarios/{testId}Operasi ini memungkinkan Anda untuk menghapus semua data yang terkait dengan skenario pengujian tertentu.

Parameter permintaan

testId
  • ID unik dari tes

    Tipe: String

    Diperlukan: Ya

Respons

Nama Deskripsi

status

Status tes

PILIHAN /scenarios/ {TESid}

Deskripsi

OPTIONS /scenarios/{testId}Operasi ini memberikan respons untuk permintaan dengan header respons CORS yang benar.

Respons

Nama Deskripsi

testId

ID unik dari tes

testName

Nama tes

testDescription

Deskripsi tes

testType

Jenis pengujian yang dijalankan (misalnya,simple,jmeter)

fileType

Jenis file yang diunggah (misalnya,, nonescript,zip)

status

Status tes

startTime

Waktu dan tanggal ketika tes terakhir dimulai

endTime

Waktu dan tanggal ketika tes terakhir berakhir

testScenario

Definisi tes termasuk konkurensi, waktu pengujian, host, dan metode untuk pengujian

taskCount

Jumlah tugas yang dibutuhkan untuk menjalankan tes

taskIds

Daftar tugas IDs untuk menjalankan tes

results

Hasil akhir dari tes

history

Daftar hasil akhir dari tes sebelumnya

errorReason

Pesan galat yang dihasilkan saat terjadi kesalahan

DAPATKAN /scenarios/ {teSTid} /testruns

Deskripsi

GET /scenarios/{testId}/testrunsOperasi mengambil uji coba IDs untuk skenario pengujian tertentu, secara opsional difilter berdasarkan rentang waktu. Kapanlatest=true, hanya mengembalikan satu uji coba terbaru.

Permintaan parameter

testId
  • ID skenario pengujian

    Tipe: String

    Diperlukan: Ya

latest
  • Kembalikan hanya ID uji coba terbaru

    Jenis: Boolean

    Default: false

    Wajib: Tidak

start_timestamp
  • Stempel waktu ISO 8601 untuk memfilter pengujian berjalan dari (inklusif). Sebagai contoh, 2024-01-01T00:00:00Z.

    Jenis: String (format tanggal-waktu)

    Wajib: Tidak

end_timestamp
  • Stempel waktu ISO 8601 untuk memfilter pengujian berjalan hingga (inklusif). Sebagai contoh, 2024-12-31T23:59:59Z.

    Jenis: String (format tanggal-waktu)

    Wajib: Tidak

limit
  • Jumlah maksimum uji coba yang akan dikembalikan (diabaikan saatlatest=true)

    Jenis: Integer (minimum: 1, maksimum: 100)

    Default: 20

    Wajib: Tidak

next_token
  • Token pagination dari respon sebelumnya untuk mendapatkan halaman berikutnya

    Tipe: String

    Wajib: Tidak

Respons

200 - Sukses

Nama Deskripsi

testRuns

Array objek uji coba, masing-masing berisi testRunId (string) dan startTime (tanggal-waktu ISO 8601)

pagination

Objek yang mengandung limit (integer) dan next_token (string atau null). Token adalah nol jika tidak ada hasil lagi

Tanggapan Kesalahan

  • 400- Format atau parameter stempel waktu tidak valid

  • 404- Skenario uji tidak ditemukan

  • 500- Kesalahan server internal

Contoh penggunaan

  • Uji coba terbaru saja: GET /scenarios/test123/testruns?latest=true

  • Terbaru dalam rentang waktu: GET /scenarios/test123/testruns?latest=true&start_timestamp=2024-01-01T00:00:00Z

  • Permintaan halaman berikutnya: GET /scenarios/test123/testruns?limit=20&next_token=eyJ0ZXN0SWQiOiJzZVFVeTEyTEtMIiwic3RhcnRUaW1lIjoiMjAyNC0wMS0xM1QxNjo0NTowMFoifQ==

DAPATKAN /scenarios/ {teSid} /testruns/ {} testRunId

Deskripsi

GET /scenarios/{testId}/testruns/{testRunId}Operasi mengambil hasil dan metrik lengkap untuk uji coba tertentu. Secara opsional hilangkan hasil riwayat dengan history=false respons yang lebih cepat.

Permintaan parameter

testId
  • ID skenario pengujian

    Tipe: String

    Diperlukan: Ya

testRunId
  • ID uji coba khusus

    Tipe: String

    Diperlukan: Ya

history
  • Sertakan array riwayat sebagai tanggapan. Setel false untuk menghilangkan riwayat untuk respons yang lebih cepat

    Jenis: Boolean

    Default: true

    Wajib: Tidak

Respons

200 - Sukses

Nama Deskripsi

testId

ID unik pengujian (misalnya,seQUy12LKL)

testRunId

ID uji coba khusus (misalnya,2DEwHItEne)

testDescription

Deskripsi uji beban

testType

Jenis tes (misalnya,simple,jmeter)

status

Status uji coba:complete,, runningfailed, atau cancelled

startTime

Waktu dan tanggal ketika tes dimulai (misalnya,2025-09-09 21:01:00)

endTime

Waktu dan tanggal ketika tes berakhir (misalnya,2025-09-09 21:18:29)

succPercent

Persentase keberhasilan (misalnya,100.00)

testTaskConfigs

Array objek konfigurasi tugas yang berisiregion,taskCount, dan concurrency

completeTasks

Wilayah pemetaan objek untuk jumlah tugas yang diselesaikan

results

Objek yang berisi metrik terperinci termasuk avg_lt (latensi rata-rata), persentil (p0_0,p50_0,p90_0,p95_0,p99_0,p99_9,p100_0), avg_rt (waktu respons rata-rata), avg_ct (waktu koneksi rata-rata), stdev_rt (waktu respons deviasi standar),,concurrency, (jumlah keberhasilan)throughput, succ (jumlah kegagalan),,,bytes, fail (array kode respons) testDurationmetricS3Location, rc dan array labels

testScenario

Objek yang berisi konfigurasi uji denganexecution,reporting, dan scenarios properti

history

Array hasil tes historis (dikecualikan saathistory=false)

Tanggapan Kesalahan

  • 400- TeStid tidak valid atau testRunId

  • 404- Uji coba tidak ditemukan

  • 500- Kesalahan server internal

HAPUS /scenarios/ {teSTid} /testruns/ {} testRunId

Deskripsi

DELETE /scenarios/{testId}/testruns/{testRunId}Operasi menghapus semua data dan artefak yang terkait dengan uji coba tertentu. Data uji coba dihapus dari DynamoDB, sedangkan data pengujian aktual di S3 tetap tidak berubah.

Permintaan parameter

testId
  • ID skenario pengujian

    Tipe: String

    Diperlukan: Ya

testRunId
  • ID uji coba khusus yang akan dihapus

    Tipe: String

    Diperlukan: Ya

Respons

204 - Sukses

Uji coba berhasil dihapus (tidak ada konten yang dikembalikan)

Tanggapan Kesalahan

  • 400- TeStid tidak valid atau testRunId

  • 403- Terlarang: Izin tidak cukup untuk menghapus uji coba

  • 404- Uji coba tidak ditemukan

  • 409- Konflik: Uji coba sedang berjalan dan tidak dapat dihapus

  • 500- Kesalahan server internal

DAPATKAN /scenarios/ {teSid} /baseline

Deskripsi

GET /scenarios/{testId}/baselineOperasi mengambil hasil tes dasar yang ditunjuk untuk sebuah skenario. Mengembalikan baik tes dasar menjalankan ID atau hasil dasar penuh tergantung pada parameter. data

Permintaan parameter

testId
  • ID skenario pengujian

    Tipe: String

    Diperlukan: Ya

data
  • Kembalikan data uji dasar penuh jikatrue, jika tidak, hanya testRunId

    Jenis: Boolean

    Default: false

    Wajib: Tidak

Respons

200 - Sukses

Kapan data=false (default):

Nama Deskripsi

testId

ID skenario pengujian (misalnya,seQUy12LKL)

baselineTestRunId

ID uji coba dasar (misalnya,) 2DEwHItEne

Kapandata=true:

Nama Deskripsi

testId

ID skenario pengujian (misalnya,seQUy12LKL)

baselineTestRunId

ID uji coba dasar (misalnya,) 2DEwHItEne

baselineData

Objek hasil uji coba lengkap (struktur yang sama denganGET /scenarios/{testId}/testruns/{testRunId})

Tanggapan Kesalahan

  • 400- Parameter TeSid tidak valid

  • 404- Skenario uji tidak ditemukan atau tidak ada set dasar

  • 500- Kesalahan server internal

PUT /scenarios/ {teSid} /baseline

Deskripsi

PUT /scenarios/{testId}/baselineOperasi ini menetapkan uji coba tertentu sebagai dasar untuk perbandingan kinerja. Hanya satu baseline yang dapat ditetapkan per skenario.

Permintaan parameter

testId
  • ID skenario pengujian

    Tipe: String

    Diperlukan: Ya

Isi permintaan

Nama Deskripsi

testRunId

ID test run untuk ditetapkan sebagai baseline (misalnya,) 2DEwHItEne

Respons

200 - Sukses

Nama Deskripsi

message

Pesan konfirmasi (misalnya,Baseline set successfully)

testId

ID skenario pengujian (misalnya,seQUy12LKL)

baselineTestRunId

ID uji coba dasar yang ditetapkan (misalnya,) 2DEwHItEne

Tanggapan Kesalahan

  • 400- TeStid tidak valid atau testRunId

  • 404- Skenario uji atau uji coba tidak ditemukan

  • 409- Konflik: Uji coba tidak dapat ditetapkan sebagai baseline (misalnya, pengujian gagal)

  • 500- Kesalahan server internal

HAPUS /scenarios/ {teSid} /baseline

Deskripsi

DELETE /scenarios/{testId}/baselineOperasi menghapus nilai dasar untuk skenario dengan menyetelnya ke string kosong.

Permintaan parameter

testId
  • ID skenario pengujian

    Tipe: String

    Diperlukan: Ya

Respons

204 - Sukses

Baseline berhasil dihapus (tidak ada konten yang dikembalikan)

Tanggapan Kesalahan

  • 400- TeSid Tidak Valid

  • 500- Kesalahan server internal

DAPATKAN /tugas

Deskripsi

GET /tasksOperasi ini memungkinkan Anda mengambil daftar tugas Amazon Elastic Container Service (Amazon ECS) yang sedang berjalan.

Respons

Nama Deskripsi

tasks

Daftar tugas IDs untuk menjalankan tes

PILIHAN/tugas

Deskripsi

Operasi OPTIONS /tasks tugas memberikan respons untuk permintaan dengan header respons CORS yang benar.

Respons

Nama Deskripsi

taskIds

Daftar tugas IDs untuk menjalankan tes

DAPATKAN /wilayah

Deskripsi

GET /regionsOperasi ini memungkinkan Anda untuk mengambil informasi sumber daya regional yang diperlukan untuk menjalankan tes di Wilayah tersebut.

Respons

Nama Deskripsi

testId

ID Wilayah

ecsCloudWatchLogGroup

Nama grup CloudWatch log Amazon untuk tugas Amazon Fargate di Wilayah

region

Wilayah di mana sumber daya dalam tabel ada

subnetA

ID salah satu subnet di Wilayah

subnetB

ID salah satu subnet di Wilayah

taskCluster

Nama klaster AWS Fargate di Wilayah

taskDefinition

ARN definisi tugas di Wilayah

taskImage

Nama gambar tugas di Wilayah

taskSecurityGroup

ID grup keamanan di Wilayah

PILIHAN/wilayah

Deskripsi

OPTIONS /regionsOperasi ini memberikan respons untuk permintaan dengan header respons CORS yang benar.

Respons

Nama Deskripsi

testId

ID Wilayah

ecsCloudWatchLogGroup

Nama grup CloudWatch log Amazon untuk tugas Amazon Fargate di Wilayah

region

Wilayah di mana sumber daya dalam tabel ada

subnetA

ID salah satu subnet di Wilayah

subnetB

ID salah satu subnet di Wilayah

taskCluster

Nama klaster AWS Fargate di Wilayah

taskDefinition

ARN definisi tugas di Wilayah

taskImage

Nama gambar tugas di Wilayah

taskSecurityGroup

ID grup keamanan di Wilayah