WebSocket 压力测试

websocket-bench 是个用 Node.js 编写的命令行工具,可以对使用 Socket.io、faye、Primus、WAMP 编写的长连接应用进行性能和压力测。

websocket-bench 安装

1
npm install -g websocket-bench 

使用说明

以 CentOS 6.5 为例。首先要修改一下文件打开数,默认是1024,修改为一个比较大的值,总共65535个端口,websocket-bench 推荐设置的是 60000 ,命令如下:

1
ulimit -n 60000

websocket-bench 的参数设置

1
websocket-bench -a 300 -c 29 http://localhost:8100 -o opt.log

-a 参数用于指定总共的测试次数,-c参数指定并发连接数。

使用 generator 自定义测试逻辑

长连接压力测试麻烦的一部分,就在于连接完成后需要完成一定的交互操作,websocket-bench 通过 generator 文件来方便测试人员编写连接上服务器后所需要执行的操作。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
module.exports = {
  //可选,在建立连接之前会执行
  beforeConnect: function(client){
  },
  //必选,建立连接后所要做的事情
  onConnect: function(client, done){
    //向服务器发送消息
    //client 为客户端的连接实例
    client.emit('setTitle', {title: 'bench_' + randomNumber(), pVer: 2});
    //回调函数
    done();
  },
  //必选,向服务器民送消息时运行的代码
  sendMessage: function(client, done) {
    client.emit('moveTo', {x: randomNumber(3500), y: randomNumber(3500)});
    done();
  }
};


function randomNumber(max){
  return Math.floor(Math.random()* (max || 100000));
}

编写完成后,在运行 websocket-bench 时,使用 -g 参数指定 generator 文件即可。

本文链接地址: WebSocket 压力测试

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注