49

我们正在构建一个使用 websockets 的群聊功能。我们想测试我们当前的基础设施可以支持多少连接。

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

4

6 回答 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
    }
});

您是否使用任何框架(如套接字 IO)进行 websocket 通信?

于 2013-04-25T12:03:33.510 回答
6

几年过去了,还有另一个新工具可以对 Websockets 进行负载测试: https ://github.com/observing/thor

于 2015-08-07T17:27:43.943 回答
4

为此目的使用Jmeter怎么样。虽然它还不直接支持 WebSocket,但您可以使用 TCP 采样器来完成工作。

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

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

于 2014-01-23T10:44:13.390 回答
1

您可以为此使用负载测试工具。

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

于 2015-08-20T13:06:28.047 回答
0

我对 tsung http://tsung.erlang-projects.org/有很好的体验

于 2017-10-21T19:50:47.393 回答
0

我会用 Node.js 来做,这样你就可以使用你在实际客户端中使用的同一个 websocket 客户端库。

于 2015-08-26T11:20:01.177 回答