WebSocket-bench测试WebSocket

1安装Node.js

CentOS6.5环境下安装

检查是否安装了epel

yum repolist

如果没有在结果中看到epel则通过yum命令安装

yum install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

安装好以上环境后开始安装node.js

sudo yum install nodejs npm --enablerepo=epel

2安装WebSocket-bench

使用npm以全局方式安装

npm install -g websocket-bench --registry=http://registry.npm.taobao.org

3WebSocket-bench使用

修改文件打开数

ulimit -n 60000

使用generator来自定义测试逻辑

module.exports = {
       //可选,在建立连接之前会执行
       beforeConnect : function(client) {       },
       //必选,建立连接后要做的事情
       onConnect : function(client, done) {
       //向服务器发送消息       //client为客户端的连接实例       client.emit(‘GetMessageList‘,‘{"channelID": "1609"}‘);
       //回调函数
       done();
       },
       //必选,向服务器发送消息时运行的代码
       sendMessage : function(client, done) {
       client.emit(‘GetMessageList‘,‘{"channelID": "1609"}‘);       done();
       },

       options : {
         // realm: ‘chat‘
       }
    };

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

有时需要修改socket.io协议,位置在/usr/lib/node_modules/websocket-bench/lib/workers/socketioworker.js第18行

var client = io.connect(this.server, { ‘force new connection‘ : true,‘transports‘: [‘websocket‘, ‘polling‘]});

运行websocket-bench

websocket-bench -a 10 -c 1 -g generator.js -k  http://localhost:20001/  -o opt.log

-a 参数用于指定总共的测试次数, -c 参数指定并发连接数,使用 -o 参数可以将报告保存到单独的文件中

更多使用请查看https://github.com/M6Web/websocket-bench

4测试报告

Launch bench with 10 total connection, 1 concurent connection
0 message(s) send by client
1 worker(s)
WS server : socket.io

时间: 2024-10-25 17:42:40

WebSocket-bench测试WebSocket的相关文章

JMeter怎样测试WebSocket

一.安装WebSocket取样器 1.从JMeter插件管理器官网下载: https://jmeter-plugins.org/ 把这6个jar包放到C:\JMeter\apache-jmeter-3.3\lib\ext目录下 2.从github下载: https://github.com/maciejzaleski/JMeter-WebSocketSampler 同理,下载解压后的6个jar包放到C:\JMeter\apache-jmeter-3.3\lib\ext目录下 3.自动安装: 下载

node.js搭建简单服务器,用于前端测试websocket链接方法和性能测试

WebSocket简介 谈到Web实时推送,就不得不说WebSocket.在WebSocket出现之前,很多网站为了实现实时推送技术,通常采用的方案是轮询 (Polling)和Comet技术,Comet又可细分为两种实现方式,一种是长轮询机制,一种称为流技术,这两种方式实际上是对轮询技术的改进,这些 方案带来很明显的缺点,需要由浏览器对服务器发出HTTP request,大量消耗服务器带宽和资源.面对这种状况,HTML5定义了WebSocket协议,能更好的节省服务器资源和带宽并实现真正意义上的

WebSocket 介绍(二)-WebSocket API

这一章介绍如何用WebSocket API来控制协议和创建应用,运用http://websocket.org 提供的现有WebSocket服务器,我们可以收发消息.创建一些简单的WebSocket应用.一步一步的学习使用WebSocket API,最后我们会讨论浏览器的支持度和连通性.这一章的重点是WebSocket 协议在Web客户端的应用,在稍后的章节会介绍WebSocket协议以及其使用环境. 综述: 正如第一章提到的,WebSocket包含网络协议和API,让你能够在客户端和服务端创建W

学习WebSocket一(WebSocket初识)

Java EE 7 去年刚刚发布了JSR356规范,使得WebSocket的Java API得到了统一,Tomcat从7.0.47开始支持JSR356,这样一来写WebSocket的时候,所用的代码都是可以一样的.今天终于体验了一把Tomcat发布的WebSocket,用着很爽,下面把这一历程分享给大家. 关键词:WebSocket, Tomcat 前提:使用Tomcat7.0.47,Firefox25.0.0.5046 首先Tomcat7.0.47自带WebSocket的示例程序,有两种版本,

学习WebSocket(一):Spring WebSocket的简单使用

1.什么是websocket? WebSocket协议定义了一种web应用的新功能,它实现了服务器端和客户端的全双工通信.全双工通信即通信的双方可以同时发送和接收信息 的信息交互方式.它是继Java applets, XMLHttpRequest, Adobe Flash, ActiveXObject等使web应用更具交互性的新技术. 在实现连线过程中,浏览器和服务器通过TCP三次握手建立连接. 如果和服务器连接成功后,浏览器通过HTTP发送握手请求,如果服务器同意握手连接,客户端和服务端之后就

一步一步学WebSocket (一) 初识WebSocket

众所周知,Http协议是无状态的,并且是基于Request/Response的方式与服务器进行交互,也就是我们常说的单工模式.但是随着互联网的发展,浏览器与服务端进行双向通信需求的增加,长轮询向服务器以获取最新数据并实现推送效果的方式已经越来越不能满足我们.Html5标准的制定,也为我们提供了浏览器与服务端的双工通信协议WebSocket. WebSocket协议的格式为 "ws://IP:Port" 或者"wss://IP:Port".其中wss表示进行加密传输的

WebSocket使用javax.websocket.RemoteEndpoint.Basic.sendObject(Object arg0)向页面方法发送对象

WebSocket接口中有一个直接发送对象给页面的方法: voidjavax.websocket.RemoteEndpoint.Basic.sendObject(Object arg0) throws IOException,EncodeException 如果直接使用 client.session.getBasicRemote().sendObject(obj); 就会出现以下错误: javax.websocket.EncodeException: No encoder specified f

WebSocket Security (WebSocket 安全)

WebSocket Security The WebSocket protocol is a young technology, and brings with it some risks. Decades of experience have taught the web community some best practices around HTTP security, but the security best practices in the WebSocket world aren’

使用Jmeter测试WebSocket接口

WebSocket接口需要下载相应的插件才能进行测试 一.添加线程组 添加线程组等其他元件 添加线程组,Jmeter执行是通过线程组进行驱动的,测试计划必须最少有一个线程组,选中Test Plan,点击右键,添加>Threads>线程组 添加CSV 数据文件设置元件,该元件可用来参数化,点击右键>添加>配置元件>CSV 数据文件设置 添加用户定义的变量,该变量可在整个线程中进行调用 二.依次添加如下请求 添加创建连接请求-选中线程组,点击右键,添加>Sampler>