如何做websockets负载testing

我们正在构build一个使用websockets的群聊function。 我们要testing我们目前的基础设施可以支持多less个连接。

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

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

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进行负载testing: https : //github.com/observing/thor

如何使用Jmeter来达到这个目的。 虽然它还没有直接支持WebSocket,但可以使用TCP采样器来完成工作。

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

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

你可以使用一个负载testing工具。

我在一个类似的项目中使用了WebLOAD 。 它logging了使用浏览器时的networkingstream量 – 它logging了常规的HTTP请求以及networking套接字stream量 – 然后您可以与许多用户一起播放脚本并测量服务器的行为。

我会用Node.js来做,所以你可以使用你在实际的客户端中使用的websocket客户端库。

  • Node.js: https : //nodejs.org/
  • Websocket客户端,例如socket.io-client: http ://socket.io/get-started/chat/

我曾与tsung很好的经验http://tsung.erlang-projects.org/