linux cpu占用率如何看
384
2022-11-09
利用kite对视频流应用进行压力测试
1. 前言
工作中使用到了视频流服务,在前期的选型中,苦于无法测试视频服务的稳定性,扩展性,经过一番尝试终于测试成功,特此记录下来。
2. 使用工具
OPENVIDU:视频服务平台
FFMPEG:多媒体视频处理工具,用于切割视频流,音频流
KITE:WEBRTC测试引擎
ZABBIX:服务器监控软件
INTELLIJIDEA:JAVA开发工具,用于编写自己的测试用例
3. 使用
前期的安装工作就不在此赘述了,主要梳理一下我遇到的几个坑
1.openvidu的安装中,最好使用Ubuntu16.04,Ubuntu Bionic18.04会存在一些限制,因为Ubuntu Bionic18.04不支持使用OpenCV过滤器.这样就无法使用音视频过滤器。
值得注意的是y4m格式都比较大,像我这个源视频才32MB,但是y4m格式是8.19G,需要预留出足够的空间。
3.Kite的安装简单,但在构建部署,kite会下载google浏览器的驱动文件,由于国内的环境限制,要么翻墙下载,要么事先下载好再放到如下位置:
需要统一测试浏览器的版本和相对应的驱动版本,不一致的情况下是无法调用成功的。地址见:http://chromedriver.storage.googleapis.com/index.html 测试用例的基本逻辑是利用selenium模拟人操作被测应用,用准备好的视频流,音频流充当应用的视频音频来源,接着使用ZABBIX来监控服务器资源的占用,测试出服务器极限。
tests:测例列表主要关注的是
tupleSize: 浏览器的实例数量,数量设置10时,代表测试会开启10个浏览器实例,selenium默认开启5个实例,可通过修改启动项(localGrid\chrome\startNode.bat)改变。
testImpl: 测例入口文件
client: 测试浏览器的配置,在这里就可指定上述的视频流,音频流位置,也可以指定使用的浏览器(browserName),浏览器模式(headless)等配置
5.2 Java测例运行时的调用栈
Engine.java main
Engine.java runInterop
TestRunThread.java call
MatrixRunner.java run
TestManager.java call
KiteBaseTest.java execute
KiteBaseTest.java testInParallel
TestRunner.java call
TestStep.java processTestStep
TestStep.java execute
TestStep.java step
继承TestStep,实现step方法,通过webDriver对象打开浏览器输入并访问测试地址,并等待页面元素的出现。
5.3 由于使用的selenium grids,selenium框架提供了docker镜像,可方便的在云上使用。
结束语
关于视频服务压力测试,这次的分享就到这里咯。还请各位观众老爷多多交流指正哦。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~