利用kite对视频流应用进行压力测试

网友投稿 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小时内删除侵权内容。

上一篇:互联网隐私保护是互联网消费升级的必然
下一篇:聊聊SpringCloud中的Ribbon进行服务调用的问题
相关文章

 发表评论

暂时没有评论,来抢沙发吧~