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 压力测试