11

我在 Windows 中有一个网络 C++ 程序,我想在不同时间测试网络断开连接。我有哪些选择?

目前我是:

  1. 实际上从我的计算机背面断开网络线
  2. 使用 ipconfig /release
  3. 使用cports程序完全关闭套接字

不过,这些方法都不是我的理想选择,我想更轻松地模拟网络问题。

我希望有时连接失败,有时套接字读取失败,有时套接字写入失败。如果有一些实用程序可以用来模拟这些类型的问题,那就太好了。

当这个模拟的坏网络启动时,能够构建一些自动化的单元测试也很好。

4

4 回答 4

11

您可能想要抽象网络层,然后您可以进行单元测试,在适当的点注入有趣的故障事件。

于 2008-09-14T20:09:03.703 回答
2

我能想到的最接近的是用Shunra的VEDekstop做类似的事情。

模拟数据库应用程序测试中的高延迟和低带宽

Shunra VE Desktop Standard 是一种基于 Windows 的客户端软件解决方案,可模拟广域网链接,以便您可以直接从您的桌面在各种当前和潜在的网络条件下测试应用程序。

于 2008-09-14T18:18:36.450 回答
0

您可以将用于管理套接字的任何库类子类化(如果您使用的是 MFC,则可能是 CAsyncSocket 或 CSocket),覆盖要测试其失败的方法,并在覆盖中插入适当的测试代码。

于 2008-09-15T01:19:11.353 回答
0

There are some methods you can use, it is depend on which level you want to test. For function level, you can use XUNIT testing framework to mock a responce. For software level, you can use a local proxy server to contral connection.

于 2012-10-22T08:16:05.433 回答