腾讯视频Mac App自动化测试实践

转载自 : 腾讯移动品质中心TMQ   (已获得授权)


一、前言

Mac已然是一个不可或缺的平台,但是相对其它平台来说,针对Mac app的各项专项测试却没有多少资料可供参考,本篇文章介绍了腾讯视频Mac端的各项专项测试总结,整理了过去一年腾讯视频Mac测试团队的探索和研究。

二、Mac App测试框架

我们对比了多款自动化框架,最终选择了atomac作为视频Mac端的自动化框架。

表1不同框架对比

从表中可以看出,atomac是基于控件识别的方式,不依赖于ui的展示,不需要额外的支持工作,更适合于Mac app的自动化测试工作。atomac是一款开源的Mac app自动化框架,基于Mac acessiblity Api实现,拥有较高的控件识别准确度和速度,同时简单易扩展。其官方地址为https://github.com/pyatom/pyatom。


三、功能测试自动化

将测试日常的checklist利用atomac全部自动化,我们将会例行的执行全部的自动化case并生成相应的日报。

图1功能测试自动化流程

图2测试日报


四、性能测试自动化

Mac app常用的性能指标cpu/mem等都是可以通过系统命令ps获取到的,syruby是一个开源的python库,可以友好地实时显示性能参数。但是为了支持更多的性能指标和多进程数据收集,我们自己封装了一个性能数据收集的函数。目前Mac视频这边使用的性能指标包标cpu、内存、线程数、cpu温度(笔记本)。

图3性能测试自动化流程

实现的基本思路时,在性能自动化用例执行的过程中,会同时开启一个线程PerfThread用于收集性能参数,并保存至文件中。

图4性能数据结果文件

性能用例全部执行完毕后,这些性能数据文件会上传至云测平台,用于数据的可视化及历史版本对比。

图5云测结果展示

五、稳定性测试

这一部分内容分为两个模块,用例的设计和crash的捕捉。

首先介绍下Mac视频频道页的设计思路,Mac视频的频道页是由h5来实现(最新版本部分频道已改为Native),图6显示了腾讯视频Mac端主界面的控件树结构,可以看出频道页中的控件在一个组内,如果按照传统的界面控件dump策略,频道页中的内容覆盖会较低,我们设计了一个较简单的控件点击策略,将频道页控件组下面的页面控件id全部获取,与主界面的其它按钮控件组成控件池,在执行时将从这些叶子节点中随机选择,然后随机取该控件的操作方法(如点击,滑动等)执行,图8中示例了一些控件支持的操作方法即Actions属性。

图6控件树显示

图7视频主界面控件树示意图

图8对象操作方法

在app发生crash时,我们有两种方法可以捕捉。其一是实时监测app进程的活动状态,但应用进程不存在时,则识别为发生crash,另一种是利用Mac系统的特性,在Mac平台上app发生crash时会在目录/Library/Logs/DiagnosticReports下生成crash文件,所以只要监控该目录即可,如果该目录下有QQLive相关的.crash文件生成,则认为发生了crash。

拿到crash文件,我们将会对crash文件进行堆栈提取、合并,并进行自动tapd提单。

目前除了上述的控件遍历方法,针对播放场景也有加入crash捕捉,并取得了一定的成效。

图9本地播放的crash捕捉提单

六、视频启播时间测试

对于视频类app而言,启播时间是一个非常重要的用户体验指标。我们是通过控件识别的方式来进行启播时间的收集,我们认为拉起播放器作为启播时间的起始,播放按钮为enabled状态为启播时间的终止。两者之间的差值则本次播放的启播时间。

如图10和图11,启播完成后播放按钮enabled为True,所以在整个拉起播放器的过程中,我们只需时刻监控播放按钮的状态即可。

图10 启播加载中画面

图11 启播完成画面

图12 启播时间测试


七、视频播放下载测试

在播放视频的过程中,不论是播放器sdk,p2p组件还是前端部分,遇到对应的播放错误时都会抛出对应的错误码,基于此,我们开展了Mac视频的播放下载测试。主要是设计不同的播放用例,将生成的日志上传至后台进行相应的log错误tag解析,当识别到对应的错误tag时,会自动转tapd单,并转开发进行分析。

目前针对播放器SDK,P2P组件,前端APP的三套错误码,我们分别加入了对应的tag监控,并分别抛出对应tag的问题。

八、竞品测试

竞品测试分为资源消耗类性能对比和时间消耗类对比,可以认为是上述视频性能测试和视频启播时间测试的扩展,引入product相关的配置文件,保存常见的竞品参数,并执行对应的自动化用例获取数据。

图13 竞品测试配置文件

图14 竞品测试结果

九、总结

本文介绍了Mac视频各专项测试的基础建设,填补了之前在Mac端的空白。各项工作完成之后,各部分测试效率有了极大的提高,并发现了很多难以复现的bug,指导开发的优化方向。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,066评论 4 62
  • 有一天,很奇怪的,我接到了我爸的电话,如不是有特别重要的事要说,他是不会打电话给我的,所以让我感觉很意外。 他支支...
    无明海阅读 258评论 0 0
  • 如果你自诩游戏迷、动漫迷、科技迷,却还不知道Pokémon GO,赶紧面壁1秒钟,面完了再来看这篇文章。 我先静静...
    谷非古阅读 512评论 2 6
  • 源于生命中蕴含的无数幻想 有人在另一个世界里寻求真实 他孤独 便使黑夜黎明发酵成诗 追求着梦境般吹弹可破的泡影 如...
    荒芜年月阅读 346评论 3 2
  • 读案例《装病的孩子》和《他为什么爬上攀登架不肯下来》有感 《装病的孩子》中的小同为了看动画片《晴空战...
    真好简单阅读 255评论 0 0