软件中的网络中断测试 我在Windows中有一个网络C++程序,我想在不同的时间测试网络断开。我有什么选择

软件中的网络中断测试 我在Windows中有一个网络C++程序,我想在不同的时间测试网络断开。我有什么选择,windows,testing,networking,network-programming,Windows,Testing,Networking,Network Programming,目前我是: 实际上是从我的电脑背面断开了网络连接 使用ipconfig/release 使用程序完全关闭插座 不过,这些方法都不适合我,我想更轻松地模拟网络问题 我希望有时连接失败,有时套接字读取失败,有时套接字写入失败。如果有一些实用工具可以用来模拟这些类型的问题,那就太好了 当这个模拟的坏网络出现时,能够构建一些自动化的单元测试也会很好。我能想到的最接近的方法就是从Shunra做一些类似的事情 Shunra VE Desktop Standard是一种基于Windows的客户端软件解决方案

目前我是:

  • 实际上是从我的电脑背面断开了网络连接
  • 使用ipconfig/release
  • 使用程序完全关闭插座
  • 不过,这些方法都不适合我,我想更轻松地模拟网络问题

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


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

    我能想到的最接近的方法就是从Shunra做一些类似的事情


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

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

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

    您可以使用一些方法,这取决于您要测试的级别。对于函数级,您可以使用XUNIT测试框架来模拟响应。对于软件级,您可以使用本地代理服务器来控制连接。

    这是我采用的方法,效果非常好。明智地使用接口意味着我可以模拟测试系统的各个部分。对于无法以这种方式完成的测试,我将测试中的代码连接到测试线束中的测试插座,然后在测试中对其进行控制