如何进行WebSockets的负载测试

52

我们正在开发一个使用WebSocket技术的群聊功能。我们希望测试当前架构能够支持多少连接。

基本上,这归结为如何模拟WebSocket。

6个回答

10

根据我的最近经验,我可以给你一个建议。你可以将基于webkit的Phantom虚拟客户端连接到你的聊天服务器上,并测量资源使用情况(例如CPU、内存,可以使用shell脚本或其他实用工具,或者你可以对你的服务进行分析)。

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
    }
});

你是否使用任何框架(如socket IO)进行websocket通信?


6

4

可以考虑使用Jmeter来实现这个目的。虽然它目前还不支持WebSocket,但可以使用TCP采样器完成任务。

或者您可以获取一个插件,为JMeter添加WebSocket支持:http://github.com/maciejzaleski/JMeter

无需多言,JMeter和WebSocket插件都是开源且免费使用的。


0

0
你可以使用一个负载测试工具来进行测试。
我在类似的项目中使用过WebLOAD。它能记录浏览器访问时的网络流量,包括常规的HTTP请求和WebSockets流量。之后,你可以使用多个用户一起运行这个脚本,并测量服务器的响应行为。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接