高级性能测试系列《28.websocket协议、jmeter如何来测试websocket协议?》

2022-12-02 21:52:41 浏览数 (1)

目录

  • 一、websocket协议
  • 二、jmeter如何来测试websocket协议?
  • 三、写脚本
    • 1.取样器
    • 2.websocket和socket是一个东西吗?
    • 3.写脚本

一、websocket协议

  • 启动websocket项目:
    • 下载 virt-dubbo.ova 项目机。
    • vmware 打开这个ova项目。
    • ./stwebsocketserver.sh 启动项目。(python3编写的、端口8189、协议 ws)

websocket协议是基于TCP的一种新的网络协议,它实现了客户端与服务端全双工通信:允许服务器主动向客户端发送消息,也允许客户端向服务器请求消息。

http协议: 只能客户端向服务器发起请求,服务器收到请求后,进行处理,原路返回。不能实现服务器主动向客户端发送消息。

  • 服务器主动向客户端发送消息:
    • 微信有网络时,马上就有消息推送。
    • app,有网络时,主动推送下来的消息(不是短信)。
    • 最典型的一个应用:app,心跳机制(保活)。

例如收到天气预报的这种短信:它有生成放在发送的序列里面去排队,排到它了就把它推送到你的手机上来。

什么是心跳机制(保活)?

看看这个app是不是一直处于一个在线活跃的状态。过一段时间,服务器主动发送一个消息给这个app,确认这个app是不是处于在线状态。

web测试:登录了一段时间未操作,再来操作时,就会出现登录超时。

  • websocket协议:
    • ws:不加密数据传输。
    • wss:ws ssl 证书进行数据加密传输。
  • http协议簇 :
    • http:不加密数据传输。
    • https:http ssl 进行数据加密传输。

二、jmeter如何来测试websocket协议?

jmeter中要引入插件,jmeter本身的取样器中,不支持websocket协议。

  • 插件管理.jarjmeter-plugins-manager-1.6.jar
    • 把jar包,放到jmeter的libext文件夹中, 这个文件夹下放第三方开发的jar包。
    • 再启动jmeter。
    • jmeter的菜单-->选项-->plugins manager的入口(没有放plugin的jar包时,没有这个入口)。
    • 点击入口,出现插件管理的弹窗。
  • Installed plugins:已安装。
  • Available plugins:可用的,但是需要你手动去安装。
    • 搜索websocket。
    • 勾选WebSocket Samplers by Peter Doornbosch。
    • 点击右下角apply changes and restart jmeter。
  • upgrades:可以升级的。

三、写脚本

1.取样器

  • websocket close:关闭websocket。
  • websocket open connection:建立一个websocket。
  • websocket ping/pong:测试websocket协议的网络能不能通。
  • websocket single read sampler:客户端从服务器端获取响应。
  • websocket single write sampler:客户端向服务端发起请求(不会获取响应)。
  • websocket request-response sampler:同时具备向服务端发起请求和获取响应的功能。

2.websocket和socket是一个东西吗?

不是一个东西。websocket是一个通信协议(向外暴露接口,可以调用接口),socket:代码层面之间的调用(不向外暴露接口,必须使用代码调用)。

3.写脚本

我用的这个项目就是一个微型的直播室。

建立链接。

WebSocket Single Write Sampler:

  • connect:
    • user exist connection:使用已经建立连接。
    • setup new connection:新建一个连接。
  • Data:
    • 数据:text 文本,binary 二进制(例如用微信发消息的时候,是用二进制来传的语音)。
    • request data。

向服务器发起消息。

收消息。

运行结果中可以看出发过去的是601。

运行结果:直播室创建成功。

这个接口就测完了。

gitee脚本链接:

https://gitee.com/qinghanstudy/gaojixingneng/tree/master/Advanced performance testing


文章中除标明“图片来自网络”的图片,皆为小编本人所画所截图,计算机知识都一样,如有雷同,纯属巧合。文章是清菡编写的,如有转载,请标明出处!

0 人点赞