我们正在构建一个使用 websockets 的群聊功能。我们想测试我们当前的基础设施可以支持多少连接。
基本上它归结为如何模拟 websocket。
我们正在构建一个使用 websockets 的群聊功能。我们想测试我们当前的基础设施可以支持多少连接。
基本上它归结为如何模拟 websocket。
我可以根据我最近的经验给你一个建议。您可以将基于 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 通信?
几年过去了,还有另一个新工具可以对 Websockets 进行负载测试: https ://github.com/observing/thor
为此目的使用Jmeter怎么样。虽然它还不直接支持 WebSocket,但您可以使用 TCP 采样器来完成工作。
或者,您可以获得一个插件,将 WebSocket 支持添加到 JMeter:http: //github.com/maciejzaleski/JMeter
不用说 JMeter 和 WebSocket 插件都是开源的并且可以免费使用。
您可以为此使用负载测试工具。
我在一个类似的项目中使用过WebLOAD 。它记录使用浏览器时的网络流量——它记录常规的 HTTP 请求以及网络套接字流量——然后您可以与许多用户一起回放脚本并测量服务器的行为。
我会用 Node.js 来做,这样你就可以使用你在实际客户端中使用的同一个 websocket 客户端库。