Bean Network Tester

CI içinde kötü ağı simüle edin

Pencere isteğe bağlıdır. Aynı çalıştırılabilir dosya bir komut satırı aracı olarak çalışır, belirlenen süreden sonra kendiliğinden biter ve olanı bir pipeline’ın okuyabileceği biçimde bildirir.

Bir adımın biçimi

Testin süresi boyunca bozun, sonra kendiliğinden durmasına izin verin. Unutulacak bir temizlik adımı yok:

BeanNetworkTester.exe --loss 10 --latency 200 --target myapp.exe --duration 60

Bir GitHub Actions işinde, kendi barındırdığınız bir Windows runner üzerinde:

- name: Test the app on a poor connection
  shell: pwsh
  run: |
    Start-Process -FilePath BeanNetworkTester.exe `
      -ArgumentList '--loss 10 --latency 200 --target myapp.exe --duration 90'
    npm test

Runner hakkında iki şey: trafiği yakalamak yönetici hakları gerektirir ve barındırılan bir runner bunları vermez; bu yüzden bu, kendi barındırdığınız bir Windows makinesine aittir.

Her sonun bir çıkış kodu var

Hiçbir şey bir traceback ile bitmez. Bir çalıştırmanın bitebileceği her yolun bir numarası vardır; böylece bir pipeline “uygulamanız başarısız oldu” ile “araç başlatılamadı” arasındaki farkı ayırt edebilir:

KodAnlamı
0İstendiği gibi tamamlandı.
1Çalışırken bir şey başarısız oldu.
2Komut satırı hatalıydı.
3Bir ayar ya da değer geçersizdi.
4Bir senaryo dosyası reddedildi.
5Bir dosya okunamadı veya yazılamadı.
6Çalıştırmayla ilgili bir doğrulama sağlanmadı.
7Yönetici hakları yok, bu yüzden sürücü yüklenemiyor.
130Kesildi, genellikle Ctrl+C ile.
143Dışarıdan sonlandırıldı.

Makinenin okuyabileceği çıktı

--format json satır başına bir JSON nesnesi yazar: çalışırken örnekler, sonunda bir özet; böylece sonraki bir adım bunun üzerinde doğrulama yapabilir:

BeanNetworkTester.exe --loss 5 --duration 30 --format json > run.ndjson

Günlük satırları standart hataya, veriler standart çıktıya gider; bu yüzden veriyi yönlendirmek ikisini asla karıştırmaz. --seed çalıştırmayı tekrarlanabilir yapar; kararsız bir testin, kimse tartışmaya başlamadan önce ihtiyaç duyduğu şey budur.

Hiçbir şeye dokunmayan bir deneme çalıştırması

İki bayrak, güvenmeden önce bağlamayı güvenli kılar: --dry-run ayarların ne yapacağını bildirir ve çıkar, --simulate ise sürücüyü yüklemeden ve ağa dokunmadan tüm motoru sentetik trafiğe karşı çalıştırır. İkisi de çalıştığı makineyi bozmaması gereken bir derlemede işe yarar.

Sonraki adımlar

Kendi ağınızı bilerek bozmaya hazır mısınız?

Windows için indir