JMeter Websocket 二进制Binary压力测试或接口测试
背景
最近在做游戏项目,做好java服务端,需要本地调试Websock服务,并且是二进制binary形式传输,网上的很多都是text形式传输的测试页面,所以不符合要求。为了解决websocket的二进制传输,并实现websocket通信机制的心跳问题,所以写了一个做法。
目的
- Jmeter与java后端websocket服务建立连接
- 因为websocket机制,有定时检测连接是否存储,所以需要Jmeter定时维护连接存在,不然超过心跳时间会断开连接。
- 建立连接后,二进制传输
点赞再看,关注公众号:【地藏思维】给大家分享互联网场景设计与架构设计方案
掘金:地藏Kelvin https://juejin.im/user/5d67da8d6fb9a06aff5e85f7
操作
1. 下载Jmeter
https://jmeter.apache.org/download_jmeter.cgi
上官网,找最新的版本,找到zip格式的压缩文件,便于在windows下解压。
解压后,找到bin目录下的jmeter.bat文件,则会启动Jmeter
2. 更改语言
点击菜单栏-option-language-Chinese,则能显示中文
3. 下载Jmeter的Websocket插件
https://bitbucket.org/pjtr/jmeter-websocket-samplers/src
下载后,放到jmeter目录的lib\ext下,并重启jmeter
如:
D:\Program Files\apache-jmeter-5.2.1\lib\ext\
4. 建立线程组
我这里是自测,所以用了一次循环
5. 建立 websocket写入 样例
对着 线程组右键-》添加-》取样器-》 websocket simple write sample
5.1 创建连接
填写ip 、端口、连接的path。
说明一下而这个只是对服务端创建连接,并不是真正的通信传输数据用。websocket都是创建连接后,后续才真正的传输通信,如:聊天室建立房间后续再通信。
5.2 创建 察看结果树
用于看每次通信是否有成功连接。
对着样例右键-》添加-》监听器-》察看结果树
6. 创建真正通信用的websocket写样例
同样在一个线程组下,创建websocket写样例。但是这个时候不需要填写ip和端口,只需要选择已存在的一个连接就行。
6.1 填写与传输二进制
这个地方就比较麻烦,不能直接填json什么的,只能把对象写好,然后转换为byte数组,再转为16进制的数字放进jmeter。
我这两个类呢,是个protobuf软件proto.exe生成出来的类来的,里面有转换为toByteArray方法,得到二进制数组后,再写个工具把刚刚的数组转换为16进制,就得出结果。
执行后,打印出来后,得到这个数字就可以放进jmeter的参数栏。参数类型,记得选binary
到这里基本上就完成了。为了压测时,我们需要对websocket后端进行心跳维护。
7. 最后弄弄定时心跳
对着线程组右键-》添加-》逻辑控制器-》runningtime控制器
填好这个定时任务存活时间
7.1 创建心跳传输内容
如同第6点 那样,创建websocket写样例,传输二进制数据。
7.2 创建固定定时器
填写这个定时器,每多少秒执行一次。
本文到这里就结束了。本次讲解的是websocket的开发自测,可能对于大部分java开发来讲都用不上,只有游戏的同学会使用websocket,搞游戏、聊天室、websocket等项目的同学打个call吧。
欢迎关注公众号,文章更快一步
我的公众号 :地藏思维
掘金:地藏Kelvin
简书:地藏Kelvin
我的Gitee: 地藏Kelvin https://gitee.com/kelvin-cai
JMeter Websocket 二进制Binary压力测试或接口测试的更多相关文章
- Windows和Linux的Jmeter分布式集群压力测试
Windows的Jmeter分布式集群压力测试 原文:https://blog.csdn.net/cyjs1988/article/details/80267475 在使用Jmeter进行性能测试时, ...
- Jmeter教程 简单的压力测试
Jmeter教程 简单的压力测试:http://www.cnblogs.com/TankXiao/p/4059378.html
- 转:使用 JMeter 完成常用的压力测试
使用 JMeter 完成常用的压力测试 就目前 Java EE 的平台下开发的软件来说,这种节点通常可能是:Web 服务器.数据库服务器和 JMS 服务器.它们都是请求主要发生的地点,请求频率较其它的 ...
- JMeter (3) —— JMeter录制脚本并压力测试用户登陆场景以CAS SSO为例(101 Tutorial)
JMeter (3) -- JMeter录制脚本并压力测试用户登陆场景以CAS SSO为例(101 Tutorial) 主要内容 JMeter录制脚本并进行压力测试用户登陆场景,并以CAS SSO单点 ...
- 【转】使用JMeter 完成常用的压力测试(三)
使用JMeter 完成常用的压力测试 发布时间: 2008-9-27 15:33 作者: 未知 来源: 网络转载 字体: 小 中 大 | 上一篇 下一篇 | 打印 | 我要投稿 ...
- 【转】使用JMeter 完成常用的压力测试(二)
使用JMeter 完成常用的压力测试 Login.jsp 和welcome.jsp.其中 login.jsp 负责生成 User 对象,并调用 User 的login.当 login 返回为 true ...
- 学习总结——JMeter做http接口压力测试
JMeter做http接口压力测试 测前准备 用JMeter做接口的压测非常方便,在压测之前我们需要考虑这几个方面: 场景设定 场景分单场景和混合场景.针对一个接口做压力测试就是单场景,针对一个流程做 ...
- Jmeter教程 简单的压力测试【转】
Jmeter教程 简单的压力测试[转] Jmeter是一个非常好用的压力测试工具. Jmeter用来做轻量级的压力测试,非常合适,只需要十几分钟,就能把压力测试需要的脚本写好. 阅读目录 什么是压力 ...
- Jmeter对Websocket进行接口压力测试
压力测试是给软件不断加压,强制其在极限的情况下运行,观察它可以运行到何种程度,从而发现性能缺陷,是通过搭建与实际环境相似的测试环境,通过测试程序在同一时间内或某一段时间内,向系统发送预期数量的交易请求 ...
随机推荐
- muduo源码解析10-logstream类
FixedBuffer和logstream class FixedBuffer:noncopyable { }: class logstream:noncopyable { }: 先说一下包含的头文件 ...
- 重拾Java Web应用的基础体系结构
目录 一.背景 二.Web应用 2.1 HTML 2.2 HTTP 2.3 URL 2.4 Servlet 2.4.1 编写第一个Servlet程序 2.5 JSP 2.6 容器 2.7 URL映射到 ...
- 数据操纵DML
数据操纵DML 1. 在dept表中插入两行数据 (1)50,'IT','SHENYANG';(2)60,'HR','DALIAN'; 2. 设置保存点beforeup 3. 更新dept表,将60号 ...
- 前端Web APIS
day01 - Web APIs 学习目标: 能够通过ID来获取元素能够通过标签名来获取元素能够通过class来获取元素能够通过选择器来获取元素能够获取body和html元素能够给元素注册事件能够修改 ...
- VSCode 快速生成.vue基本模板、发送http请求模板
安装vscode 官网:https://code.visualstudio.com/ 安装 Vetur 插件,识别 vue 文件 插件库中搜索Vetur,点击安装,安装完成之后点击重新加载 新建代码片 ...
- 数据结构与算法系列2 线性表 链表的分类+使用java实现链表+链表源码详解
数据结构与算法系列2.2 线性表 什么是链表? 链表是一种物理存储单元上非连续,非顺序的存储结构,数据元素的逻辑顺序是通过链表的链接次序实现的一系列节点组成,节点可以在运行时动态生成,每个节点包括两个 ...
- 移动开发中如何整合HTML 5和原生代码
移动开发中如何整合HTML 5和原生代码 https://blog.csdn.net/lvjin110/article/details/41038565
- P1082 同余方程(拓展欧几里德)
题目描述 求关于xx的同余方程 a x \equiv 1 \pmod {b}ax≡1(modb) 的最小正整数解. 输入输出格式 输入格式: 一行,包含两个正整数 a,ba,b,用一个空格隔开. 输出 ...
- D - 英文题 (多组背包)
The cows are going to space! They plan to achieve orbit by building a sort of space elevator: a gian ...
- A+B in Hogwarts (20)(模拟)
时间限制 1000 ms 内存限制 65536 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 If you are a fan of Harry Potter ...