Testing 如何测试TCP服务器实现?

Testing 如何测试TCP服务器实现?,testing,tcp,tcplistener,tcpserver,Testing,Tcp,Tcplistener,Tcpserver,我已经编写了一个TCP服务器实现,使用它创建了一个用作TCP回送服务的应用程序 现在我想从以下方面测试这个echo服务器 它可以处理多少个连接 什么是响应时间 它使用了多少内存和CPU 请您推荐测试此echo服务器的任何标准方法/工具。我知道TCP和echo服务器实现都是相当标准的实践,所以我希望找到成熟的工具来测试它 附言:我可以编写自己的测试应用程序,但我不想这样做,因为如果我看到一些问题,我需要确保是我的服务器出错了。我不想首先测试我的测试客户机 我使用C#和.NET 3.5编写了这个

我已经编写了一个TCP服务器实现,使用它创建了一个用作TCP回送服务的应用程序

现在我想从以下方面测试这个echo服务器

  • 它可以处理多少个连接
  • 什么是响应时间
  • 它使用了多少内存和CPU
请您推荐测试此echo服务器的任何标准方法/工具。我知道TCP和echo服务器实现都是相当标准的实践,所以我希望找到成熟的工具来测试它

附言:我可以编写自己的测试应用程序,但我不想这样做,因为如果我看到一些问题,我需要确保是我的服务器出错了。我不想首先测试我的测试客户机


我使用C#和.NET 3.5编写了这个实现,尽管我相信这与这个问题无关。

我有一个免费工具可以帮助您。我用它来测试用我的C++服务器框架构建的服务器。此工具在以下位置可用:。它允许您以可配置的速率创建到目标服务器的可配置数量的连接,然后在每个连接上发送数据(同样以可配置的速率)

如果您发现使用它的最佳方式是在服务器的不同机器上运行它(我知道这很明显,但是…),并且可能在多台不同的机器上运行多个副本。请注意,如果您发现无法建立超过4000个连接,则很可能需要在运行客户端的计算机上调整
MAX\u USER\u PORT
注册表设置


测试TCP代码后,您可能会发现需要测试服务器支持的协议。我在C#中为这种情况编写了一个测试工具,可在CodeProject()上获得。这允许您编写一个“插件”来支持您的协议,并为您处理与协议无关的内容(大量连接、断开消息以便获得碎片读取等)。设计是一个相当讨厌的线程,每个连接设计和更高的连接数量,你最好用一个异步设计来重新实现一些东西,但是我有我的C++工具,所以我从来没有改变过这个测试程序…p> 在你之前的同样情况下,我使用了FunkLoad。如果您可以编写一个小客户端作为Python代码片段,那么FunkLoad将根据您的需要在服务器上运行任意数量的客户端,并将结果绘制成图表:

一个针对一系列测试服务器的完整示例是《我的Python网络编程基础》第二版的核心内容,以防其公共源代码库有任何帮助:


我一直使用它的一个版本来测试我的服务器框架(它在我的构建机器上运行以测试我的所有框架示例服务器),它是我多年来为客户开发的几种定制测试工具的基础。让我知道,如果你有任何问题,从博客帖子链接的版本,我可以更新到最新版本,如果你仍然有问题,我会解决他们。至于C#工具,你只能靠自己了;)谢谢。您的应用程序似乎按预期工作(而我的服务器没有:)。将在您的博客帖子上发布查询和评论!