【jmeter性能测试】websocket协议脚本,使用websocket sampler组件发送消息,服务器接收不到;使用WebSocket request-response Sampler可以成功接收;这两个组件有什么区别?

【问题描述】
websocket请求,登录接口,使用Websocket request-response组件发送消息可以成功发送并接收到消息;使用websocket sampler组件,jmeter显示连接成功,实际服务器未接收到请求;这是什么原因,两个组件有什么区别?

Websocket request-response请求:


响应:

websocket sampler请求:

响应:

这两个插件都是websocket的。是两个不同的作者开发的。

  • WebSocket Samplers by Peter Doornbosch
    image

  • WebSocket Sampler by Maciej Zaleski
    image

在工作中使用发现,使用websocket sampler不可以选择消息类型,发送二进制消息就会有问题;
使用request-response组件,可以选择消息类型为text或binary,可以正常发送文本和二进制消息;

这就是不同开发者开发的JMeter插件,没有什么不同,选择可以使用的就行啦!同理你也可以为JMeter开发websocket插件。如果某个插件不好用,不能用就需要自己去修改插件代码逻辑或者新开发一个协议的插件,遇到可以使用的就可以直接使用。(后期课程会讲解怎么开发一个JMeter插件的。)

websocket sampler不可以选择消息类型,插件作者也许就没有添加这个特性 :joy:,寻找满足你需求的插件使用。

知道了 谢谢!