Bean Network Tester

غيّر ظروف الشبكة مع الوقت

فقدان ثابت بنسبة 10% ظرف مختبري. الاتصالات الحقيقية تسوء وتتعافى وتتوقف أربع ثوانٍ ثم تعود، والخطأ الذي تطارده يعيش عادةً في التغيير لا في الحالة المستقرة.

السيناريو جدول زمني

ملف JSON واحد. تقول كل خطوة في هذه الثانية، هذه الإعدادات، وما لا تذكره يحتفظ بقيمته:

{
  "loop": true,
  "steps": [
    {"at": 0,  "settings": {"latency": 20, "jitter": 15, "down": 4096}},
    {"at": 20, "settings": {"loss": 8, "latency": 180}},
    {"at": 45, "settings": {"block_ip": "203.0.113.0/24"}},
    {"at": 65, "settings": {"block_ip": "", "loss": 0, "latency": 20}}
  ]
}

الأزمنة ثوانٍ منذ بداية التشغيل، لا فجوات بين الخطوات. ومع "loop": true يبدأ الجدول من جديد حين ينتهي، وهذا ما تريده لاختبار تحمّل طويل: اتركه يعمل واستخدم التطبيق.

BeanNetworkTester.exe --scenario cafe-wifi.json --target myapp.exe

عدد السيناريوهات الجاهزة في البرنامج: 8

في مجلد scenarios بجوار الملف التنفيذي. مقروءة من هذه الملفات، فهذا هو ما لديك فعلًا:

الملفالخطواتالمدةيتكرر
blocked-endpoint.json465 sنعم
cafe-wifi.json585 sنعم
congested-vpn.json470 sنعم
failing-dns.json685 sنعم
mobile-lte-to-3g.json785 sنعم
overloaded-game-server.json572 sنعم
same-loss-in-runs.json5100 sنعم
upload-drop-midway.json775 sلا

هي نصوص عادية: افتح ملفًا، وغيّر رقمًا، واحفظ. وتقول الأسماء ما تعيد إنتاجه: مقهى مزدحم، واتصال جوال يهبط من LTE إلى 3G، ورفع يموت في منتصفه، وخادم يُثقل عليه، وDNS يتوقف عن الإجابة.

طريقتان أبسط لإحداث التغيير

يستحق السيناريو أن يُكتب حين يهم التسلسل. وحين لا يهم، يتغير إعدادان من تلقاء نفسيهما:

BeanNetworkTester.exe --flap-period 10 --flap-down 40 --target myapp.exe

لماذا يعمل أثناء تشغيل التطبيق

كل إعداد يمسّه السيناريو يُطبَّق مباشرة على الجلسة الجارية: لا يحتاج التطبيق إلى إعادة تشغيل ولا الأداة. يسجّل سجل الأحداث كل خطوة حين تحدث، فإذا انكسر شيء رأيت أي تغيير سبقه. اقرن ذلك بـ seed فيتكرر التسلسل كله، بما في ذلك الفقدان العشوائي داخله، بدقة.

التالي

هل أنت مستعد لتخريب شبكتك عمدًا؟

تنزيل لنظام Windows