自动化测试高手课
柳胜
原甲骨文高级开发经理
16849 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 34 讲
开篇词 (1讲)
自动化测试高手课
15
15
1.0x
00:00/00:00
登录|注册

23|设计实战(三): 一个分布式多端视频会议自动化测试设计

你好,我是柳胜。
这几年疫情肆虐全球,远程办公越来越普遍了,视频会议的市场也变得更加火热。视频会议软件的质量,自然也需要测试保驾护航。
不过,视频会议软件自动化测试非常有挑战性,因为它有很多难点:第一,协作复杂;第二,分布式执行;第三,验证有技术难度。
今天,我们就来为视频会议软件设计一套自动化测试方案,用来测试视频会议的会议功能。

场景还原

我们先从视频会议的时序图开始分析,你就明白视频会议的自动化测试有多复杂了。这里我选择了一个迷你 demo,但麻雀虽小,五脏俱全。假定会议用户有三位:使用 Web 端的用户 A、桌面用户 B,以及手机用户 C。
如图所示,Web 用户 A 先在浏览器创建一个 Meeting,发送邀请链接给桌面用户 B 和手机用户 C,然后 B 和 C 加入会议,A、B、C 三个人同时在线。
这时,用户 A 开始演示自己的屏幕,B 和 C 要收到 A 演示的屏幕;A 如果在聊天区里发送一个消息,B 和 C 也要收到这个消息。
这样一个复杂的场景,我们既要测试视频会议的分布式协作能力,还要测试会议的准确度,另外还要保证效率性能。这三方面的测试目标,我用表格的方式来举例说明,你可以看看。

视频会议测试概要设计

那么,自动化测试该怎么设计和实现,才能达到上面的目标?我们先从概要设计开始分析。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了如何设计一个分布式多端视频会议的自动化测试方案。作者首先分析了视频会议的复杂性和挑战性,然后从时序图和测试目标出发,提出了视频会议测试的概要设计。在设计过程中,作者详细讨论了初始化功能和演示功能的设计,并提出了优化执行时间的方法,以提高测试效率和健壮性。文章突出了视频会议自动化测试的复杂性和挑战性,以及如何通过设计和优化来解决这些问题,对于从事软件测试和分布式系统开发的技术人员具有一定的参考价值。文章还介绍了如何验证演示的正确性以及如何度量演示的流畅度,并提出了智能对比图片的方法和分布式事务的实现。此外,文章还讨论了如何实现和扩展视频会议的自动化测试,并提出了一种基于Job模型的自动化测试设计思路和案例。整体而言,本文通过详细的技术讨论和案例分析,为读者提供了一种全新的设计思路和实现方法,对于理解自动化测试设计和应用Job模型进行自动化测试的读者具有较高的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《自动化测试高手课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(3)

  • 最新
  • 精选
  • 羊羊
    以前从事测试机顶盒中间件工作,有些视频质量验证的问题一直没有解决,希望老师能提供一些先进经验。例如: 音视频的同步检测; 视频的卡顿,马赛克; 视频显示在不同大小屏幕上的结果比对;

    作者回复: 音视频同步,通过UI auotmation可能实现比较困难,可能你开发一个这样的Automation比起实现音视频同步本身难度也差不多。我建议,可以在API,单元测试这一层进行验证。 视频的卡顿,马赛克,也要看这个现象发生的根本原因在哪里,然后确定合适的验证截面。 视频显示在不同屏幕上,这倒是一个UI适配测试的点。可以考虑通过抓图,位图比较技术来实现。

    2022-08-02归属地:日本
    3
  • 羊羊
    是否可以吧六边形模型中的host,抽象为设备信息,host属于设备的一个配置,检测阶段可能还会使用到其他设备的属性,例如屏幕尺寸,硬件性能,网络环境等。wifi和4G的延迟要求是不是也会不同? 在多设备测试中,不同终端的行为和检测,有些事相同的,有些是特定平台特有的。想请教一下老师,你们是如何实现的?每种终端一套独立的行为和检测代码?还是把相同的行为抽象为abstract class?

    作者回复: 抽象这部分,非常有道理! 不同终端,不同验证方式。总体思路,还是能够最大复用代码,又能灵活修改扩展。 可以把验证方法定义为抽象方法或者接口方法,由各个设备来做实现。在验证的时候,只需调用接口即可。 当然,你也可以自定义call back,当验证运行时,触发相应的call back代码。 都是可以的!

    2022-08-03归属地:日本
    1
  • ifelse
    学习打卡
    2024-02-27归属地:浙江
收起评论
显示
设置
留言
3
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部