如何对WebSocket进行负载测试

如何对WebSocket进行负载测试,websocket,load-testing,Websocket,Load Testing,我们正在构建一个群组聊天功能,它使用WebSocket。我们想测试我们现有的基础设施能够支持多少连接 基本上,它归结为如何模拟websocket。根据我最近的经验,我可以给你一个建议。您可以将基于webkit的虚拟虚拟客户端连接到聊天服务器,并测量资源使用情况(即CPU、内存,可能使用shell脚本或其他实用程序,或者您可以配置您的服务) var-system=require('system'); var page=require('webpage')。create(); page.viewpo

我们正在构建一个群组聊天功能,它使用WebSocket。我们想测试我们现有的基础设施能够支持多少连接


基本上,它归结为如何模拟websocket。

根据我最近的经验,我可以给你一个建议。您可以将基于webkit的虚拟虚拟客户端连接到聊天服务器,并测量资源使用情况(即CPU、内存,可能使用shell脚本或其他实用程序,或者您可以配置您的服务)

var-system=require('system');
var page=require('webpage')。create();
page.viewportSize={宽度:1024,高度:768};
第页打开(“),功能(状态){
//检查页面加载是否成功
如果(状态!=“成功”){
console.log(“无法连接”);
phantom.exit();
}否则{
控制台日志(“客户端连接”);
//连接后,您可以提取更多信息、截图等。有关更多详细信息,请参阅phantom.js API
}
});

您是否使用socket IO之类的框架进行websocket通信

为此使用Jmeter怎么样。尽管它还不直接支持WebSocket,但您可以使用TCP采样器来完成这项工作

或者,您可以获得一个插件,该插件将向JMeter添加WebSocket支持:


不用说JMeter和WebSocket插件都是开源的,可以免费使用。

几年过去了,有另一种新工具可以对WebSocket进行负载测试:
您可以使用负载测试工具进行测试


我在一个类似的项目中使用过。它在使用浏览器时记录web流量—它记录常规HTTP请求和web套接字流量—然后您可以向许多用户播放脚本,并测量服务器的行为。

我将使用Node.js进行此操作,这样您就可以使用与实际客户端中使用的相同的websocket客户端库

  • Node.js:
  • Websocket客户端,例如socket.io-client:

我和tsung有过很好的经历

var system = require('system');
var page = require('webpage').create();
page.viewportSize = { width: 1024, height: 768 };

page.open("<URL to chat server service>", function (status) {
    // Check for page load success
    if (status !== "success") {
        console.log("Unable to connect");
        phantom.exit();
    } else {
        console.log("Client connected  ");
        //after connecting you may extract further information, taking screenshots etc. refer the phantom.js API for further details
    }
});