zoukankan      html  css  js  c++  java
  • JMeter Websocket 二进制Binary压力测试或接口测试

    背景

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

    目的

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

    点赞再看,关注公众号:【地藏思维】给大家分享互联网场景设计与架构设计方案
    掘金:地藏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,则能显示中文
    1.png

    3. 下载Jmeter的Websocket插件

    https://bitbucket.org/pjtr/jmeter-websocket-samplers/src
    下载后,放到jmeter目录的libext下,并重启jmeter

    如:
    D:Program Filesapache-jmeter-5.2.1libext

    4. 建立线程组

    1.png
    我这里是自测,所以用了一次循环
    2.png

    5. 建立 websocket写入 样例

    对着 线程组右键-》添加-》取样器-》 websocket simple write sample

    5.1 创建连接

    填写ip 、端口、连接的path。

    说明一下而这个只是对服务端创建连接,并不是真正的通信传输数据用。websocket都是创建连接后,后续才真正的传输通信,如:聊天室建立房间后续再通信。

    3.png

    5.2 创建 察看结果树

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

    6. 创建真正通信用的websocket写样例

    同样在一个线程组下,创建websocket写样例。但是这个时候不需要填写ip和端口,只需要选择已存在的一个连接就行。
    4.png

    6.1 填写与传输二进制

    这个地方就比较麻烦,不能直接填json什么的,只能把对象写好,然后转换为byte数组,再转为16进制的数字放进jmeter。
    5.png

    我这两个类呢,是个protobuf软件proto.exe生成出来的类来的,里面有转换为toByteArray方法,得到二进制数组后,再写个工具把刚刚的数组转换为16进制,就得出结果。
    6.png

    执行后,打印出来后,得到这个数字就可以放进jmeter的参数栏。参数类型,记得选binary


    到这里基本上就完成了。为了压测时,我们需要对websocket后端进行心跳维护。

    7. 最后弄弄定时心跳

    对着线程组右键-》添加-》逻辑控制器-》runningtime控制器
    7.png

    填好这个定时任务存活时间

    7.1 创建心跳传输内容

    如同第6点 那样,创建websocket写样例,传输二进制数据。

    7.2 创建固定定时器

    填写这个定时器,每多少秒执行一次。
    8.png

    本文到这里就结束了。本次讲解的是websocket的开发自测,可能对于大部分java开发来讲都用不上,只有游戏的同学会使用websocket,搞游戏、聊天室、websocket等项目的同学打个call吧。


    欢迎关注公众号,文章更快一步

    我的公众号 :地藏思维

    image

    掘金:地藏Kelvin

    简书:地藏Kelvin

    我的Gitee: 地藏Kelvin https://gitee.com/kelvin-cai

  • 相关阅读:
    June 26th 2017 Week 26th Monday
    June 25th 2017 Week 26th Sunday
    June 24th 2017 Week 25th Saturday
    June 23rd 2017 Week 25th Friday
    June 22nd 2017 Week 25th Thursday
    2018最佳网页设计:就是要你灵感爆棚!!!
    图片素材类Web原型制作分享-Pexels
    想要打动HR的心,UX设计师求职信究竟应该怎么写?
    【UXPA大赛企业专访】Mockplus:“设计替代开发”将成为现实
    2018年最好的医疗网站设计及配色赏析
  • 原文地址:https://www.cnblogs.com/kelvin-cai/p/12793399.html
Copyright © 2011-2022 走看看