我正在使用node.js开发webscoket服务器。在完成核心api后,我想开始对服务器进行基准测试和内存泄漏测试。目前我找到的唯一基准测试工具是wsbench,但该项目已过时并使用了弃用的api调用。我找到了其他一些关于解决方案或答案的过时帖子,但这些方案可能因平台不同而无法运行(我正在使用OS X)。我真的很希望能有一些更加实时的解决方案来解决这个问题,而不是一年前的东西。
Autobahn测试套件是一个很好的起点。它的9.x测试提供了不同消息大小、片段大小、TCP数据包大小和客户端和服务器实现的往返时间的良好性能覆盖率。请注意,Autobahn是用Python编写的,因此在你的实现接近测试客户端/服务器本身的速度时,它的准确度会降低。
为了帮助提供比Python更快的语言编写的实现的更好的性能指标,我正在使用我的C++ WebSocket++库 实现许多Autobahn 9.x测试。WebSocket++还包括一个通用的压力测试客户端,允许服务器作者测试他们的服务器在成千上万个连接下会发生什么。
Autobahn和WebSocket++均完全支持2011年11月发布的最终RFC6455 WebSocket规范。WebSockets是相对较新的技术,它们的测试工具尚未完全成熟。如果您对WebSocket性能测试有任何问题或反馈,请随时私下联系我或将问题发布到Github项目。
声明:我是WebSocket++的作者,也是Autobahn测试套件的贡献者。
它主要是用于测试客户端和服务器实现的正确性,但第9节的所有内容(超过50项单独测试)都与性能和负载测试有关。