2008-09-14 23 views
11

Tôi có một chương trình mạng C++ trong Windows mà tôi muốn thử nghiệm để ngắt kết nối mạng tại các thời điểm khác nhau. Những lựa chọn của tôi là gì?Kiểm tra ngắt mạng trong phần mềm

Hiện nay tôi đang:

  1. Trên thực tế ngắt kết nối dây mạng từ mặt sau của máy tính của tôi
  2. sử dụng ipconfig/phát hành
  3. Sử dụng chương trình cports để đóng socket hoàn toàn

Không có phương pháp nào trong số này là lý tưởng cho tôi, và tôi muốn mô phỏng các vấn đề về mạng dễ dàng hơn.

Tôi muốn đôi khi kết nối không thành công, đôi khi socket đọc thất bại và đôi khi ổ ghi ghi lỗi. Nó sẽ là tuyệt vời nếu có một số tiện ích tôi có thể sử dụng để mô phỏng các loại vấn đề.

Nó cũng sẽ là tốt đẹp để có thể xây dựng một số xét nghiệm đơn vị tự động trong khi mô phỏng mạng xấu này là lên.

Trả lời

11

Bạn có thể muốn trừu tượng lớp mạng và sau đó bạn có thể có các bài kiểm tra đơn vị chèn các sự kiện thất bại thú vị tại các điểm thích hợp.

+0

Đây là phương pháp tôi thực hiện và hoạt động rất tốt. Việc sử dụng giao diện hợp lý có nghĩa là tôi có thể thử nghiệm các phần khác nhau của hệ thống đang được kiểm tra. Đối với các bài kiểm tra mà không thể được thực hiện theo cách này, tôi có mã theo thử nghiệm kết nối với một ổ cắm thử nghiệm trong khai thác thử nghiệm mà tôi sau đó kiểm soát trong thử nghiệm –

3

Gần nhất tôi có thể nghĩ đến là làm cái gì tương tự với VEDekstop từ Shunra ..

Simulating High Latency and Low Bandwidth in Testing of Database Applications

Shunra VE Desktop Chuẩn là một giải pháp phần mềm máy khách Windows dựa trên mô phỏng một liên kết mạng diện rộng nên bạn có thể thử nghiệm các ứng dụng dưới nhiều điều kiện mạng hiện tại và tiềm năng - trực tiếp từ máy tính của bạn.

0

Bạn có thể phân lớp bất kỳ lớp thư viện nào bạn đang sử dụng để quản lý ổ cắm của bạn (có lẽ là CAsyncSocket hoặc CSocket nếu bạn đang sử dụng MFC), ghi đè lên các phương thức mà bạn muốn kiểm tra và chèn mã kiểm tra thích hợp vào phần ghi đè của bạn.

0

Có một số phương pháp bạn có thể sử dụng, tùy thuộc vào cấp độ bạn muốn kiểm tra. Đối với mức chức năng, bạn có thể sử dụng khung kiểm thử XUNIT để giả lập một phản hồi. Đối với cấp phần mềm, bạn có thể sử dụng máy chủ proxy cục bộ để kết nối contral.