Toxiproxy, test ortamlarında ağ koşullarını simüle etmek için bir çerçeve

Shopify, Web'deki en büyük ve en popüler e-ticaret platformlarından birini geliştiren dio kısa süre önce proxy sunucusu «Toxiproxy 2.3»'ün yeni sürümünü piyasaya sürdüğünü duyurdu. ağdaki ve sistemdeki arızaları ve anormallikleri simüle etmek ve bu tür koşullar oluştuğunda uygulamaların durumunu test etmek için tasarlanmıştır.

Program, Toxiproxy'yi birim test sistemleriyle entegre etmek için kullanılabilecek, iletişim kanalının özelliklerini dinamik olarak değiştiren bir API sağlamanın yanı sıra, sürekli entegrasyon platformları ve geliştirme ortamları için de destek sağlamasıyla öne çıkıyor.

Toxiproxy Hakkında

Bu çerçeve test ortamlarında çalışmak üzere özel olarak tasarlanmıştır, CI ve geliştirme ve bağlantıların deterministik manipülasyonunu destekler, ancak rastgele kaos ve özelleştirme desteği ile.

temelde, Toxiproxy bir araç olarak konumlandırıldı yani tüm ihtiyaç duyanlar Tek hata noktası olmayan uygulamalarda demo testleri gerçekleştirin. Toxiproxy, Ekim 2014'ten bu yana Shopify'daki tüm geliştirme ve test ortamlarında başarıyla kullanılmaktadır.

Toksiproksinin kullanımı iki kısımdan oluşmaktadır. Go'da yazılmış bir TCP proxy'si (bu havuzun içerdiği şey) ve proxy ile HTTP aracılığıyla iletişim kuran bir istemci. Bu, uygulamayı tüm test bağlantılarının Toxiproxy'den geçmesi ve ardından durumlarını HTTP aracılığıyla değiştirebilmesi için yapılandırır.

Başka bir deyişle, vekil test edilen uygulama ile bu uygulamanın etkileşimde bulunduğu ağ hizmeti arasında başlatılır, bundan sonra sunucudan bir yanıt alırken veya bir istek gönderirken belirli bir gecikmenin oluşumunu simüle edebilir, bant genişliğini değiştirebilir, bağlantıları kabul etmeyi reddetmeyi simüle edebilir, bağlantıların normal seyrini veya bağlantıların kapanmasını kesintiye uğratabilir, kurulan bağlantıları yeniden kurun, çarpıtın paketlerin içeriği.

Uygulamalardan proxy sunucusunun çalışmasını kontrol etmek için Ruby, Go, Python, C# /.NET, PHP, JavaScript / Node.js, Java, Haskell, Rust ve Elixir için istemci kitaplıkları sağlanır ve bu kitaplıkları değiştirmenize olanak tanır. etkileşim koşulları anında ağ ve sonucu hemen değerlendirin.

Kodda değişiklik yapmadan iletişim kanalının özelliklerini değiştirmek için özel bir toxiproxy-cli yardımcı programı kullanılabilir (birim testlerinde Toxiproxy API'sinin kullanılması gerekir ve yardımcı program etkileşimli deneyler için faydalı olabilir).

Toxiproxy 2.3'teki yenilikler neler?

Yayınlanan yeni sürümde yer alan değişikliklere gelince, HTTPS için bir istemci uç nokta denetleyicisinin dahil edildiğinden bahsediliyor.

Tipik test sürücülerinin ayrı dosyalara ayrılmasının yanı sıra, client.Populate API'sinin uygulanması.

Buna ek olarak, armv7 ve armv6 platformları için destek ve sunucu için kayıt düzeyini değiştirme yeteneği de vurgulanmıştır.

Toxiproxy'yi Linux'a yükleyin

Testlerini yapabilmek için bu çerçeveyi kurabilmek isteyenler için bunu yapabilirler. aşağıda paylaştığımız adımları izleyerek.

Kullanıcısıysanız Debian, Ubuntu veya bunlara dayalı herhangi bir dağıtım, Kurulumu bir terminal açarak gerçekleştirebilirsiniz (Ctrl + Alt + T klavye kısayolunu kullanabilirsiniz) ve içine şunu yazacaksınız:
wget https://github.com/Shopify/toxiproxy/releases/download/v2.3.0/toxiproxy_2.3.0_linux_amd64.deb

Ve kurulumu şu şekilde gerçekleştirmeye devam ediyoruz:
sudo apt install ./toxiproxy_2.3.0_linux_amd64.deb

Olanların durumunda RPM paketlerini destekleyen dağıtım kullanıcıları, diğerlerinin yanı sıra Fedora, openSuse, RHEL gibi indirilecek paket şudur:
wget https://github.com/Shopify/toxiproxy/releases/download/v2.3.0/toxiproxy_2.3.0_linux_amd64.rpm

Ve şunu yazarak paketi kurarsınız:
sudo rpm -i toxiproxy_2.3.0_linux_amd64.rpm

Kurulum tamamlandıktan sonra terminalde aşağıdaki komutu çalıştırarak hizmeti başlatabilirsiniz:
sudo service toxiproxy start

Son olarak eğer eBu konuda daha fazla bilgi sahibi olmak ilginizi çekiyorsa, Toxiproxy kodunun Go'da yazıldığını ve MIT lisansına sahip olduğunu bilmelisiniz ve bu çerçeveyi kullanmak için kılavuza başvurabilirsiniz. aşağıdaki bağlantı.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: AB Internet Networks 2008 SL
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.