前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >高级性能测试系列《28.websocket协议、jmeter如何来测试websocket协议?》

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

作者头像
清菡
发布2022-12-02 21:52:41
1.8K0
发布2022-12-02 21:52:41
举报
文章被收录于专栏:清菡软件测试清菡软件测试

目录

  • 一、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的lib\ext文件夹中, 这个文件夹下放第三方开发的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%20performance%20testing


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

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-07-11,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 清菡软件测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
  • 一、websocket协议
    • 什么是心跳机制(保活)?
    • 二、jmeter如何来测试websocket协议?
    • 三、写脚本
      • 1.取样器
        • 2.websocket和socket是一个东西吗?
          • 3.写脚本
            • gitee脚本链接:
            相关产品与服务
            短信
            腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
            http://www.vxiaotou.com