别天天看看直播了,你知道如何用jmeter对直播间做压测吗
01 安装插件
Jmeter本身是支持HTTP方法,要测试WebSocket的接口,首先要安装插件。
安装插件的方法:
1、首先下载插件管理器
- 访问网站:https://jmeter-plugins.org/install/Install/
- 下载jmeter-plugins-manager-1.3 .jar包
- 将下载的包放到 jmeter的lib/ext目录,重启Jmeter**
2、下载完后在Jmeter的项目下可查看插件管理工具,点击进入可下载支持websocket的插件
02 调试websocket请求
调试websocket请求是否正常,添加一个线程组,添加取样器,添加websocket请求
1)查看用的请求方法是ws还是wss
2)端口号要正确
3)填写服务器地址和路径
4)添加查看结果树,观察运行结果是否成功
03 进入正题
完成以上前置条件之后就可以开始进入正题了,先分析业务场景&测试需求,开始进行编写测试用例,这里我们模拟的场景是:直播间同时登录60用户数即60个用户同时在线(数字设置比较小是为了方便做实验,后期需要可以新增一定的用户数量,比如200,500,1000等)和部分用户在直播间发送消息进行聊天的场景,观察直播间的画面&视频是否卡顿,服务器的性能变化。
1、数据准备:60个用户账号&密码
2、添加CSV数据文件,将账号密码进行参数化
3、写好登录接口,请求的data中的账号密码使用CSV文件中的变量名(获取txt文件中实际的账号密码)
4、接下来进入直播间,即每个用户登录后需要绑定房间才能成功进入直播间(这里具体看实际的业务场景,需要对直播间的业务进行分析,比如从登录进入直播间需要用到的哪些接口&接口之间的数据关联性等)
由于绑定到直播间需要用到一个id,这个id是websocket接口返回的,而且每次返回的都不一样,所以这里我们要把这个id进行参数化,然后给绑定房间的接口使用。
添加后置处理器,JSON提取器把clientId提取出来备用
绑定房间接口和以及接下来会用到的发送消息接口需要用到登录状态,这里我们也把登录接口返回的auth进行参数化。(同理把auth也进行参数化处理)
添加配置元件-HTTP信息头管理器(将auth变量写进去,之后需要用到登录的接口都会直接从这里取,不需要再单独写)
绑定房间接口,clientId使用动态提取的数据,传参里面的数据根据具体业务逻辑即可
运行一下,在添加的察看结果树中查看请求返回的参数是否正确(以下示例成功)
5、新增发送消息接口,查看运行结果是否成功
遇到的问题总结:
问题描述:接口请求频繁报错
分析原因:接口限制,每分钟请求不能超过60次(这是不同业务系统的特性,主要看有没有做限制)
解决方法:在接口请求下加一个定时器,延迟1000ms请求1次,这样1分钟就不会超过60次了