Shopify, yang mengembangkan salah satu platform e-commerce terbesar dan terpopuler di web, dio baru-baru ini mengumumkan bahwa mereka telah meluncurkan versi baru dari server proxy «Toxiproxy 2.3» yang dirancang untuk mensimulasikan kegagalan dan anomali dalam jaringan dan sistem untuk menguji keadaan aplikasi ketika kondisi tersebut terjadi.
Program ini menonjol karena menyediakan API untuk mengubah karakteristik saluran komunikasi secara dinamis, yang dapat digunakan untuk mengintegrasikan Toxiproxy dengan sistem pengujian unit, selain juga memiliki dukungan untuk platform integrasi berkelanjutan dan lingkungan pengembangan.
Tentang Toxiproxy
Kerangka ini dirancang khusus untuk bekerja di lingkungan pengujian, CI dan pengembangan, dan mendukung manipulasi koneksi deterministik, tetapi dengan dukungan untuk kekacauan dan penyesuaian acak.
Pada dasarnya, Toxiproxy diposisikan sebagai alat bahwa semua orang yang membutuhkan melakukan tes demo pada aplikasi yang tidak memiliki titik kegagalan tunggal. Toxiproxy telah berhasil digunakan di semua lingkungan pengembangan dan pengujian di Shopify sejak Oktober 2014.
Penggunaan toxiproxy terdiri dari dua bagian. Proksi TCP yang ditulis dalam Go (isi repositori ini) dan klien yang berkomunikasi dengan proksi melalui HTTP. Ini mengonfigurasi aplikasi sehingga semua koneksi uji melalui Toxiproxy dan kemudian dapat memanipulasi statusnya melalui HTTP.
Dengan kata lain, proxy diluncurkan antara aplikasi yang sedang diuji dan layanan jaringan yang berinteraksi dengan aplikasi ini, setelah itu Anda dapat mensimulasikan terjadinya penundaan tertentu saat menerima respons dari server atau mengirim permintaan, mengubah bandwidth, mensimulasikan penolakan untuk menerima koneksi, mengganggu jalur normal pembentukan atau penutupan koneksi, membangun kembali koneksi yang sudah ada , mendistorsi isi paket-paketnya.
Untuk mengontrol operasi server proxy dari aplikasi, perpustakaan klien untuk Ruby, Go, Python, C # /.NET, PHP, JavaScript / Node.js, Java, Haskell, Rust dan Elixir disediakan, yang memungkinkan Anda untuk mengubah kondisi interaksi jaringan dengan cepat dan segera mengevaluasi hasilnya.
Untuk mengubah karakteristik saluran komunikasi tanpa membuat perubahan pada kode, utilitas toxiproxy-cli khusus dapat digunakan (API Toxiproxy seharusnya digunakan dalam pengujian unit dan utilitas dapat berguna untuk eksperimen interaktif).
Apa yang baru di Toxiproxy 2.3?
Adapun perubahan yang disertakan dalam versi baru yang dirilis, disebutkan bahwa ada penyertaan pengontrol titik akhir klien untuk HTTPS.
Serta pemisahan driver uji khas ke dalam file terpisah, implementasi client.Populate API.
Selain itu, dukungan untuk platform armv7 dan armv6 dan kemampuan untuk mengubah tingkat registri untuk server juga disorot.
Instal Toxiproxy di Linux
Bagi mereka yang tertarik untuk dapat menginstal kerangka kerja ini untuk dapat melakukan pengujian mereka, mereka dapat melakukannya mengikuti langkah-langkah yang kami bagikan di bawah ini.
Jika Anda adalah pengguna Debian, Ubuntu atau distribusi lain berdasarkan ini, Anda dapat melakukan instalasi dengan membuka terminal (Anda dapat menggunakan pintasan keyboard Ctrl + Alt + T) dan di dalamnya Anda akan mengetik:
wget https://github.com/Shopify/toxiproxy/releases/download/v2.3.0/toxiproxy_2.3.0_linux_amd64.deb
Dan kami melanjutkan untuk melakukan instalasi dengan:
sudo apt install ./toxiproxy_2.3.0_linux_amd64.deb
Dalam kasus itu pengguna distribusi dengan dukungan untuk paket RPM, seperti Fedora, openSuse, RHEL, antara lain, paket yang harus diunduh adalah sebagai berikut:
wget https://github.com/Shopify/toxiproxy/releases/download/v2.3.0/toxiproxy_2.3.0_linux_amd64.rpm
Dan Anda menginstal paket dengan mengetik:
sudo rpm -i toxiproxy_2.3.0_linux_amd64.rpm
Setelah instalasi selesai, Anda dapat memulai layanan dengan menjalankan perintah berikut di terminal:
sudo service toxiproxy start
Akhirnya jika eAnda tertarik untuk mengetahui lebih banyak tentangnya, Anda harus tahu bahwa kode Toxiproxy ditulis dalam Go dan memiliki lisensi MIT dan Anda dapat membaca manual untuk menggunakan kerangka kerja ini di link berikut.