如何用jmeter对websockt和protobuf进行压力测试
参考代码:https://github.com/hutao722/kekexinxin
这是基于Jmeter WebsocketSampler的插件,支持对基于websocket和protobuf的服务器进行测试。
想要应用到具体业务中,还需要进行代码改造,可参考demo代码。
工程结构
两个子工程组成:
1. jmeter-websocketprotobuf-front工程。基于maciejzaleski/JMeter-WebSocketSampler(https://github.com/maciejzaleski/JMeter-WebSocketSampler). 本人做了改动,以支持protobuf数据。
2. jmeter-websocketprotobuf-custom工程。这是需要根据自身业务进行改造的工程,该工程已经有Demo,可仿造进行改动。总体来说是把请求的json数据转换成pb数据去调用服务器接口,再用返回的pb结果转换成json数据显示。
用法
1. 下载并用maven编译和打包,命令为:mvn clean package -DskipTests -P dev
我们可以得到JMeter-WebsocketProtobuf-front-1.0.jar 和 JMeter-WebsocketProtobuf-custom-1.0.jar两个jar包
2. 将下列jar包放入jmeter的\lib\ext 包下:
JMeter-WebsocketProtobuf-front-1.0.jar
JMeter-WebsocketProtobuf-custom-1.0.jar
jetty-util-9.3.11.v20160721.jar
jetty-io-9.3.11.v20160721.jar
websocket-common-9.3.11.v20160721.jar
websocket-client-9.3.11.v20160721.jar
websocket-api-9.3.11.v20160721.jar
protobuf-java-2.6.1.jar
protobuf-java-format-1.2.jar
fastjson-1.2.8.jar
3. 重启jmeter后,即可以试试,截图如下:
修改相应的参数,点击运行后,即可在结果观察树中查看结果。
该插件支持ws和wss协议。