JMeter Websocket +protobuf 二进制Binary接口测试

转载自https://www.cnblogs.com/kelvin-cai/p/12793399.html

JMeter Websocket 二进制Binary压力测试或接口测试

背景

最近在做游戏项目,做好java服务端,需要本地调试Websock服务,并且是二进制binary形式传输,网上的很多都是text形式传输的测试页面,所以不符合要求。为了解决websocket的二进制传输,并实现websocket通信机制的心跳问题,所以写了一个做法。

目的

  1. Jmeter与java后端websocket服务建立连接
  2. 因为websocket机制,有定时检测连接是否存储,所以需要Jmeter定时维护连接存在,不然超过心跳时间会断开连接。
  3. 建立连接后,二进制传输

操作

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\</p>

在这里插入图片描述

4. 建立线程组

建立 websocket写入 样例
对着 线程组右键-》添加-》取样器-》 websocket simple write sample


在这里插入图片描述
创建连接
填写ip 、端口、连接的path。
在这里插入图片描述
说明一下而这个只是对服务端创建连接,并不是真正的通信传输数据用。
websocket都是创建连接后,后续才真正的传输通信,如:聊天室建立房间后续再通信。

创建 察看结果树
用于看每次通信是否有成功连接。
右键-》添加-》监听器-》察看结果树

5.填写与传输二进制

这个地方就比较麻烦,不能直接填json什么的,只能把对象写好,然后转换为byte数组,再转为16进制的数字放进jmeter。这里我使用beanshell进行转换
在这里插入图片描述
这里的dataBuilder是protobuff对象,相关类的生成可以参考https://blog.csdn.net/weixin_45381845/article/details/120048204

是protobuf软件proto.exe生成出来的,里面有转换为toByteArray方法,得到二进制数组后,再写个工具把刚刚的数组转换为16进制,最后把得到的结果存放到vars中存储起来,传入取样器请求参数位置就可以了,取样器参数类型,记得选binary

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值