jmeter&WebSocket直播间性能测试

http://t.csdn.cn/GfXzJ

1.Jmeter本身是支持HTTP方法,要测试WebSocket的接口,首先要安装插件。 安装插件的方法:
1)首先下载插件管理器
① 访问网站:https://jmeter-plugins.org/install/Install/
②下载jmeter-plugins-manager-1.3 .jar包
③ 将下载的包放到 jmeter的lib/ext目录,重启jmeter**

2.调试websocket请求是否正常,添加一个线程组,添加取样器,添加websocket请求
1)查看用的请求方法是ws还是wss
2)端口号要正确
3)填写服务器地址和路径
4)添加查看结果树,观察运行结果是否成功

jmeter&WebSocket直播间性能测试

jmeter&WebSocket直播间性能测试

3.完成以上前置条件之后就可以开始进入正题了,先分析业务场景&测试需求,开始进行编写测试用例,这里我们模拟的场景是:直播间同时登录60用户数即60个用户同时在线(数字设置比较小是为了方便做实验,后期需要可以新增一定的用户数量,比如200,500,1000等)和部分用户在直播间发送消息进行聊天的场景,观察直播间的画面&视频是否卡顿,服务器的性能变化。
1)数据准备:60个用户账号&密码

2)添加CSV数据文件,将账号密码进行参数化

3)写好登录接口,请求的data中的账号密码使用CSV文件中的变量名(获取txt文件中实际的账号密码)

4)接下来就是进入直播间,即每个用户登录后需要绑定房间才能成功进入直播间(这里具体看实际的业务场景,需要对直播间的业务进行分析,比如从登录进入直播间需要用到的哪些接口&接口之间的数据关联性等)。
①由于绑定到直播间需要用到一个id,这个id是websocket接口返回的,而且每次返回的都不一样,所以这里我们要把这个id进行参数化,然后给绑定房间的接口使用。

②添加后置处理器,JSON提取器把clientId提取出来备用

jmeter&WebSocket直播间性能测试

②绑定房间接口和以及接下来会用到的发送消息接口需要用到登录状态,这里我们也把登录接口返回的auth进行参数化。(同理把auth也进行参数化处理)

③ 添加配置元件-HTTP信息头管理器(将auth变量写进去,之后需要用到登录的接口都会直接从这里取,不需要再单独写)

jmeter&WebSocket直播间性能测试

④ 绑定房间接口,clientId使用动态提取的数据,传参里面的数据根据具体业务逻辑即可

⑤ 运行一下,在添加的察看结果树中查看请求返回的参数是否正确(以下示例成功)

5)新增发送消息接口,查看运行结果是否成功

遇到的问题总结:
问题描述:接口请求频繁报错
分析原因:接口限制,每分钟请求不能超过60次(这是不同业务系统的特性,主要看有没有做限制)
解决方法:在接口请求下加一个定时器,延迟1000ms请求1次,这样1分钟就不会超过60次了

jmeter&WebSocket直播间性能测试

问题描述:websocket返回的clientId中带有加号,通过绑定房间接口取到的数据加号就显示为空,实际上就是id错了,接口没报错,但用户并未显示为在线状态(具体情况是登录成功60个用户,只有30个显示为在线状态,有时是25个)
分析原因:返回的clientId部分不带加号,部分带了加号,所以导致每次请求的时候上线的数量都是不一致的
解决方法:将websocket中取到的数据即绑定房间的接口请求进行数据格式化

Original: https://www.cnblogs.com/ngd-mzl/p/16035132.html
Author: 尼古丁·瘾
Title: jmeter&WebSocket直播间性能测试

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/585219/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • linux 系统调优相关参数

    posted @2022-09-05 00:32 LB_运维技术 阅读(4 ) 评论() 编辑 Original: https://www.cnblogs.com/libin-li…

    Linux 2023年6月13日
    0122
  • Redis分布式锁的使用与实现原理

    模拟一个电商里面下单减库存的场景。1.首先在redis里加入商品库存数量。 2.新建一个Spring Boot项目,在pom里面引入相关的依赖。 <dependency&gt…

    Linux 2023年5月28日
    0116
  • ELK 脚本自动化删除索引

    kibana有自带接口,可通过自带的API接口 通过传参来达到删除索引的目的。 删除15天前的索引 curl -XDELETE "http://10.228.81.161…

    Linux 2023年6月8日
    080
  • ASP.NET Core 3.0 : 二十八. 在Docker中的部署以及docker-compose的使用

    本文简要说一下ASP.NET Core 在Docker中部署以及docker-compose的使用 (ASP.NET Core 系列目录)。 系统环境为CentOS 8 。 一、概…

    Linux 2023年6月7日
    0108
  • Golang 实现 Redis(7): 集群与一致性 Hash

    本文是使用 golang 实现 redis 系列的第七篇, 将介绍如何将单点的缓存服务器扩展为分布式缓存。godis 集群的源码在Github:Godis/cluster 单台服务…

    Linux 2023年5月28日
    0102
  • Redis未授权+CVE-2019-0708组合拳利用

    0x01 简介 本次测试为实战测试,测试环境是授权项目中的一部分,敏感信息内容已做打码处理,仅供讨论学习。请大家测试的时候,务必取得授权。 拿到授权项目的时候,客户只给我了一个公司…

    Linux 2023年5月28日
    0104
  • centos7 设置开机启动任务

    环境:centos7 需求:前两天调通的DNS server(bind/named)设置开机自启动 操作: 修改 /etc/rc.local 注意这个 rc.local 文件默认是…

    Linux 2023年6月6日
    0106
  • 机器学习学习笔记之二:决策树

    使用决策树算法的基本思路 划分数据集,使被划分的特征作为决策树的节点。通常采用二叉树(也可以采用非二叉树)作为最终形成的决策树形式,即将数据集按照某个特征进行划分成两个子数据集,并…

    Linux 2023年6月14日
    078
  • [编译] 8、在Linux下搭建 stm8 单片机的开发烧写环境(makefile版)

    一、SDCC(Small Device C Compiler)编译环境搭建 1.1、下载 1.2、编译 1.3、测试 二、Hex2Bin+命令行烧写工具配置使用 2.1、下载工具安…

    Linux 2023年6月8日
    0128
  • 学习一下 Spring Security

    一、Spring Security 1、什么是 Spring Security? (1)基本认识Spring Security 是基于 Spring 框架,用于解决 Web 应用安…

    Linux 2023年6月11日
    095
  • ssl证书的选型,你知道多少?

    介绍 目前互联网常用的HTTP协议是非常不安全的明文传输协议。而SSL协议及其继任者TLS协议,是一种实现网络通信加密的安全协议,可在客户端(浏览器)和服务器端(网站)之间建立一条…

    Linux 2023年6月6日
    082
  • 《Redis开发与运维》——(六)Redis复制(脑图)

    posted @2021-01-09 15:05 雪山上的蒲公英 阅读(91 ) 评论() 编辑 / 返回顶部代码 / Original: https://www.cnblogs….

    Linux 2023年5月28日
    080
  • Action Sheets 和 Activity Views

    行动表行动表是一种特殊的提醒方式,它展示了与当前环境相关的两个或多个选择。在较小的屏幕上,动作表会从屏幕的底部滑上去;在较大的屏幕上,动作表会以弹出式的方式一次性出现。 在执行一个…

    Linux 2023年6月7日
    0100
  • linux–文件系统

    才开始接触linux是这样: 这个是shell界面 根目录下的文件 : linux在路径中不使用盘符;采用的是虚拟目录(根目录’/’ 就是一个虚拟目录) ,…

    Linux 2023年6月14日
    0103
  • 关于HandlerInterceptorAdapter和WebMvcConfigurerAdapter过时

    修改成这样 @Configuration public class HeaderTokenInterceptor implements WebMvcConfigurer { @Au…

    Linux 2023年6月8日
    0102
  • linux编译安装nginx

    本文升级过程,适用于大部分nginx编译版本 常用编译选项说明nginx大部分常用模块,编译时./configure –help以–without开头的都默认安装。 –prefix…

    Linux 2023年6月14日
    092
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球