Cara Kerja Pengujian Beban Terdistribusi di AWS - 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.

Cara Kerja Pengujian Beban Terdistribusi di AWS

Rincian rinci berikut menunjukkan langkah-langkah yang terlibat dalam menjalankan skenario pengujian.

Alur kerja uji

image3

  1. Anda menggunakan konsol web untuk mengirimkan skenario pengujian yang menyertakan detail konfigurasi ke API solusi.

  2. Konfigurasi skenario pengujian diunggah ke Amazon Simple Storage Service (Amazon S3) sebagai file JSON (). s3://<bucket-name>/test-scenarios/<$TEST_ID>/<$TEST_ID>.json

  3. Mesin status AWS Step Functions berjalan menggunakan ID pengujian, jumlah tugas, jenis pengujian, dan jenis file sebagai input mesin status AWS Step Functions. Jika pengujian dijadwalkan, pengujian akan membuat aturan CloudWatch Acara terlebih dahulu, yang memicu AWS Step Functions pada tanggal yang ditentukan. Untuk detail selengkapnya tentang alur kerja penjadwalan, lihat bagian Alur kerja penjadwalan pengujian pada panduan ini.

  4. Detail konfigurasi disimpan dalam tabel skenario Amazon DynamoDB.

  5. Dalam alur kerja runner tugas AWS Step Functions, fungsi AWS task-status-checker Lambda memeriksa apakah tugas Amazon Elastic Container Service (Amazon ECS) Container Service (Amazon ECS) sudah berjalan untuk ID pengujian yang sama. Jika tugas dengan ID pengujian yang sama ditemukan berjalan, itu menyebabkan kesalahan. Jika tidak ada tugas Amazon ECS yang berjalan di klaster AWS Fargate, fungsi akan mengembalikan ID pengujian, jumlah tugas, dan jenis pengujian.

  6. Fungsi AWS Lambda pelari tugas mendapatkan detail tugas dari langkah sebelumnya dan menjalankan tugas pekerja Amazon ECS di klaster AWS Fargate. Amazon ECS API menggunakan RunTask tindakan untuk menjalankan tugas pekerja. Tugas pekerja ini diluncurkan dan kemudian menunggu pesan awal dari tugas pemimpin untuk memulai tes. RunTask Tindakan ini dibatasi hingga 10 tugas per definisi. Jika jumlah tugas Anda lebih dari 10, definisi tugas akan berjalan beberapa kali hingga semua tugas pekerja dimulai. Fungsi ini juga menghasilkan awalan untuk membedakan pengujian saat ini dalam fungsi AWS Lambda yang mengurai hasil.

  7. Fungsi task-status-checker AWS Lambda memeriksa apakah semua tugas pekerja Amazon ECS berjalan dengan ID pengujian yang sama. Jika tugas masih disediakan, ia menunggu selama satu menit dan memeriksa lagi. Setelah semua tugas Amazon ECS berjalan, ia mengembalikan ID pengujian, jumlah tugas, jenis pengujian, semua tugas IDs dan awalan dan meneruskannya ke fungsi task-runner.

  8. Fungsi AWS Lambda pelari tugas berjalan lagi, kali ini meluncurkan satu tugas Amazon ECS untuk bertindak sebagai node pemimpin. Tugas ECS ini mengirimkan pesan uji awal ke setiap tugas pekerja untuk memulai pengujian secara bersamaan.

  9. Fungsi task-status-checker AWS Lambda kembali memeriksa apakah tugas Amazon ECS berjalan dengan ID pengujian yang sama. Jika tugas masih berjalan, ia menunggu selama satu menit dan memeriksa lagi. Setelah tidak ada tugas Amazon ECS yang berjalan, ia mengembalikan ID pengujian, jumlah tugas, jenis pengujian, dan awalan.

  10. Saat fungsi AWS Lambda pelari tugas menjalankan tugas Amazon ECS di klaster AWS Fargate, setiap tugas mengunduh konfigurasi pengujian dari Amazon S3 dan memulai pengujian.

  11. Setelah pengujian berjalan, waktu respons rata-rata, jumlah pengguna bersamaan, jumlah permintaan yang berhasil, dan jumlah permintaan yang gagal untuk setiap tugas dicatat di Amazon CloudWatch dan dapat dilihat di CloudWatch dasbor.

  12. Jika Anda menyertakan data langsung dalam pengujian, solusi akan memfilter hasil pengujian real-time CloudWatch menggunakan filter langganan. Kemudian solusinya meneruskan data ke fungsi Lambda.

  13. Fungsi Lambda kemudian menyusun data yang diterima dan menerbitkannya ke topik AWS IoT Core.

  14. Konsol web berlangganan topik AWS IoT Core untuk pengujian dan menerima data yang dipublikasikan ke topik untuk membuat grafik data waktu nyata saat pengujian sedang berjalan.

  15. Saat pengujian selesai, gambar kontainer mengekspor laporan terperinci sebagai file XHTML ke Amazon S3. Setiap file diberi UUID untuk nama file. Misalnya, s3://dlte-bucket/test-scenarios/ <$TEST_ID> /results/ <$UUID> .json.

  16. Saat file XHTML diunggah ke Amazon S3, fungsi AWS Lambda parser hasil membaca hasil dalam file XMLdimulai dengan awalan dan mem-parsing dan menggabungkan semua hasil menjadi satu hasil yang diringkas.

  17. Fungsi AWS Lambda parser hasil menulis hasil agregat ke tabel Amazon DynamoDB.