Bean Network Tester

จำลองเครือข่ายแย่ใน CI

หน้าต่างเป็นทางเลือก ไฟล์ปฏิบัติการเดียวกันรันเป็นเครื่องมือบรรทัดคำสั่ง จบเองเมื่อครบเวลาที่ตั้ง และรายงานสิ่งที่เกิดขึ้นในรูปแบบที่ไปป์ไลน์อ่านได้

หน้าตาของหนึ่งขั้นตอน

ทำให้เครือข่ายแย่ตลอดช่วงทดสอบ แล้วปล่อยให้มันหยุดเอง ไม่มีขั้นตอนล้างข้อมูลที่ลืมได้:

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

ในงาน GitHub Actions บนรันเนอร์ Windows ที่โฮสต์เอง (self-hosted):

- 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

สองข้อเกี่ยวกับรันเนอร์ การดักจับทราฟฟิกต้องใช้สิทธิ์ผู้ดูแลระบบ และรันเนอร์ที่โฮสต์ให้จะไม่ให้สิทธิ์นั้น จึงต้องใช้เครื่อง Windows ที่โฮสต์เอง

ทุกการจบมีรหัสออก

ไม่มีอะไรจบด้วย traceback ทุกวิธีที่การรันจบได้มีหมายเลข ไปป์ไลน์จึงแยก “แอปของคุณล้มเหลว” ออกจาก “เครื่องมือเริ่มไม่ได้” ได้:

รหัสความหมาย
0เสร็จสิ้นตามที่ขอ
1มีบางอย่างล้มเหลวระหว่างรัน
2บรรทัดคำสั่งไม่ถูกต้อง
3การตั้งค่าหรือค่าที่ระบุไม่ถูกต้อง
4ไฟล์สถานการณ์จำลองถูกปฏิเสธ
5อ่านหรือเขียนไฟล์ไม่ได้
6การตรวจสอบเกี่ยวกับการรันไม่เป็นจริง
7ไม่มีสิทธิ์ผู้ดูแลระบบ จึงโหลดไดรเวอร์ไม่ได้
130ถูกขัดจังหวะ โดยมากจากการกด Ctrl+C
143ถูกยุติจากภายนอก

เอาต์พุตที่เครื่องอ่านได้

--format json เขียนออบเจ็กต์ JSON หนึ่งตัวต่อบรรทัด คือตัวอย่างระหว่างรันและสรุปตอนท้าย เพื่อให้ขั้นตอนถัดไปตรวจสอบกับมันได้:

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

บรรทัดล็อกไปที่ข้อผิดพลาดมาตรฐานและข้อมูลไปที่เอาต์พุตมาตรฐาน การเปลี่ยนเส้นทางข้อมูลจึงไม่ปนกันสองอย่าง --seed ทำให้การรันซ้ำได้ ซึ่งเป็นสิ่งที่เทสต์ที่ไม่เสถียร (flaky) ต้องมีก่อนที่ใครจะเถียงเรื่องมันได้

รันทดลองที่ไม่แตะอะไรเลย

แฟลกสองตัวทำให้ต่อเข้าได้อย่างปลอดภัยก่อนที่คุณจะไว้ใจ: --dry-run รายงานว่าการตั้งค่าจะทำอะไรแล้วออก และ --simulate รันเอนจินทั้งหมดกับทราฟฟิกสังเคราะห์ โดยไม่โหลดไดรเวอร์และไม่แตะเครือข่าย ทั้งสองมีประโยชน์ในบิลด์ที่ห้ามทำให้เครื่องที่รันอยู่แย่ลง

ต่อไป

พร้อมจะทำให้เครือข่ายของคุณพังโดยตั้งใจหรือยัง

ดาวน์โหลดสำหรับ Windows