研发效能 音视频 SDK 如何进行自动化测试

小曾同学.com · 2024年02月01日 · 最后由 小曾同学.com 回复于 2024年07月18日 · 6715 次阅读

目前音视频各端全部是手工测试,人手也不够,每次两个人忙的要死,制定的 OKR 也没有完成,(衰)。也看了网上一些音视频方面的自动化测试方案,但是鄙人不才,仍有些许疑问,不知具体该如何实施,固在此想请教一些具体实战经验,包括音视频功能、性能自动化,大佬们都是怎么做自动化测试的,想学习下。救救孩子吧。(之前有看到一个小伙伴用的 monkeyrunner+ 日志,我去先实践下。)

共收到 14 条回复 时间 点赞

能不能说下你期望实现的具体功能场景

论坛搜索 "SDK 测试" 一堆大佬的实战经验.

和 RTC SDK 的同学有过一些交流,应该比较接近你说的音视频 SDK,下面观点仅代表我自己的理解。

基本测试 Demo

SDK 最基本的测试方法是写 Demo 调用 SDK 接口去测试,我不清楚楼主提到的【各端全部是手工测试】具体是什么情况,对应的宿主又是啥。

按照我的理解,应该要实现不同端的 Demo,在 Demo 中直接调用 SDK 接口,提供不同的入参以及制造不同的场景,从而实现 SDK 某接口的测试用例。这样算是 SDK 的基本功能测试。

这些测试用例中,有部分是可以轻松自动化的,有部分是可自动化但是需要一些 UI 技术的,有部分是完全无法自动化需要人工操作&断言的,分开来看就好。

性能测试也是差不多,先明确 SDK 接口的性能测试场景,然后围绕 Demo 去实现这个测试场景就是了。

注,SDK 本身也会涉及服务端请求,看你关不关注服务端的质量,关注的话要进一步拓展,上面只说 SDK 客户端。

关于断言

前面说的 Demo 可以理解为测试工具的形态,测试断言是 Demo 里需要重点考虑的一部分。

常见的断言有:接口返回断言、日志断言、数据库断言、埋点数据上报断言、音视频频断言。前四者是明确可以全自动化的,只有音视频断言自动化难度高一些,要引入一些算法来检测音视频质量,如果没有条件那就换人工断言。

以上是比较常规的整体建设思路,当然【monkeyrunner + 日志】也算是一种方式,具体看能投入建设的人力和必要性如何。匹配测试人力,能抓到 bug 解决质量问题的建设就是最好的建设。

王稀饭 回复

感谢大佬解答,目前现状是各端针对 SDK 会分别写好一个 Demo,每次提测时,只需要针对 Demo 点点点,但是每次这样耗时耗力,今天看到大佬提供的思路,突然想到可以先对经常回归的一些测试场景做 UI 自动化,然后空闲时再把对 SDK API 进行封装,做成一个测试 Demo,通过服务下发通知,自动跑自动化。

one.way 回复

感谢大佬,目前搜了一些,云里雾里的,还需要继续实战

听过一些大厂针对 SDK 自动化测试,可以测功能、性能等,不知道如何入手,目前也在调研这方面内容,希望可以有所突破,希望大佬们指点迷经。

你可以再详细描述一下你的现状。按照目前我获得的信息,我的更多建议:

信息 1:有了 Demo 后,SDK 接口的测试,转化成面向 Demo 的手工点点点

如果用例明确可以自动化,你可以在启动 Demo 的时候就自动触发这些用例的运行与断言,或者设置一个按钮一键把所有自动化用例运行起来,免去人工点击才触发用例运行,从而提升执行效率。

信息 2:【突然想到可以先对经常回归的一些测试场景做 UI 自动化,然后空闲时再把对 SDK API 进行封装,做成一个测试 Demo,通过服务下发通知,自动跑自动化】

单纯靠这些信息我推断不出来你们现有的 Demo 是什么形态,是不是我理解的类似于 App 的感觉;也不知道你这里说的 UI 自动化,是解决触发 Demo 运行用例的问题呢?还是解决某些测试场景就是要 UI 点击才能完整跑完的问题?如果是前者,看上面我的建议;如果是后者,引入 UI 自动化是可行的,不过经验上稳定性会很低,要谨慎考虑。

我们组用的是 Airtest 写的框架 不过也只是用于日常测试稳定性 音视频的自动化 主要还是声音跟视频,目前我们还是靠人工

看问题,主要是要测什么?功能还是性能或者音视频质量?

对于自动化测试来说,任何场景的代码都是输入和输出,主要是结合场景选好点。

学成学成 回复

主要是测音视频质量,最近在封装 SDK 提供的方法然后再通过单元测试的形式去调用,进行自动化测试,但是封装音视频 SDK 中的方法有点费力,还需要继续努力 不知道能不能行的通

萍尤 回复

稳定性这块 我们也可以借鉴下,希望可以多多交流

王稀饭 回复

我们的现有形式就是通过研发给的 Demo,这个 Demo 也相当于一个 app,有很多的 UI ,可以测试 SDK 的基本功能,以及音视频通话,但是目前需要人工手动测试。现在想法就是如何自动化测试音视频 SDK,想着封装 SDK API ,然后通过单元测试的方式去执行自动化测试

大概是通过服务下发的方式去驱动自动化测试,这个自动化测试相当于在一个真机中去执行自动化测试用例,具体功能场景比例说 加房、发布、订阅、取消发布、混音等

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册