【腾讯优测月刊】安卓主流自动化测试框架详解与实践

moneyispaper 2016-10-11

【腾讯优测月刊】安卓主流自动化测试框架详解与实践

 
导语:

随着移动应用发布周期越来越紧凑、安卓品牌机型/屏幕/系统版本等碎片化日益严重,移动测试工程师的工作量日益剧增。自动化测试or手工测试?这个前些年争执不休的话题,近年来随着云测试平台的崛起似乎已有了答案——自动化测试取代部分手工测试已是一种必然趋势。


这并不是说机器将取代人,而是人需要把资源集中在更“高端”的任务上,譬如测试方法设计、如何编写/录制脚本以提升自动化测试的效率和准确度等。


对于中小型研发团队来说,考虑自动化测试,就必须得考虑ROI(投入产出比),自研自动化测试框架并不现实。然而市面上安卓自动化测试框架种类繁多,该如何选择,如何应用呢?


课程课程


app自动化测试框架应用门槛并不低,这也造成许多人对其颇感兴趣但又望而却步。
本视频课程将作为“经验贴”,与各位分享腾讯优测自研自动化测试框架实践与经验总结。


课程大纲:
1. app自动化测试概要介绍
2. 安卓主流自动化测试框架对比与分析
3. 腾讯优测自研自动化测试框架实践分享


讲师介绍:

Leohu(胡泊),腾讯优测自动化测试方案专家。2011年加入腾讯,2012年以来一直从事自动化测试平台搭建研究工作,实践经验丰富,为优测核心架构做出重大贡献。

点此观看【腾讯优测自研自动化测试框架经验分享】

【腾讯优测月刊】安卓主流自动化测试框架详解与实践
 

问答部分:


问: 新手该如何入门安卓自动化测试?
答: 了解安卓的基本原理是什么样的,一些基本的adb命令,了解Android主流的一些测试框架,看看那些适合你现在的测试需求,但其实自动化测试只是一种手段,最终还是要结合自己的业务,在非常熟悉业务的同时,分析哪些是可以自动化的,哪些弄成自动化可以大大节省人力投入,哪些是目前不适用于自动化的,然后有针对性的开展测试,测试完毕后还需要整理数据进行对比,看看真实的ROI是什么样子的,逐渐改善方案,快速跟进提升效果。

问: 面对多种自动化测试框架,该如何选择?
答: Android的自动化测试框架有很多,主要还是看你的测试目的是什么样的,然后选择合适的框架开展测试,现在业界比较流行的是Appium框架,支持定位控件,支持web类应用,支持跨平台,支持多种语言编写脚本,基本上可以满足一般性的测试需求,但录制效率偏低,且大批量真机测试不是很稳定,XTest(腾讯优测推出的私有自动化测试工具)支持快速录制回放,并保证脚本的准确性,并能在大部分真机上执行测试,大家可以尝试一下。

问: 不同厂商机型测试有什么不同吗?
答: 各个厂商主要是针对自己的ROM会做一些定制化,例如权限弹窗,悬浮窗控制,电源管理策略,通知栏消息管理,静默安装等…

问: 腾讯优测自研自动化测试框架是否支持性能测试?
答: 支持性能测试,目前可以获取到cpu、各种内存、上下行流量、安装时间、启动时间、电池温度、fps、sm。

问: 腾讯优测自研自动化测试框架可以监控到native、h5组件吗?没有sd卡怎么办?
答: 支持native、h5、hybrid类应用的控件获取;需要配置一块sd卡,现在的手机一般都会内置一块自己的存储区域。

问: 游戏测试传统工具由于引擎渲染问题无法捕捉控件,腾讯优测自研自动化测试框架是如何解决的?
答: 目前主流的游戏测试引擎也就是cocos2d-x和Unity3d,这块的策略是从游戏引擎下手,通过用制定的引擎sdk打包或者将游戏包重新打包进特殊的sdk的方案,从引擎中获取当前场景内的显示元素信息,返回给测试框架实现控件的捕捉,还有一种方式就是用图形去处理,先找一个标示图,然后其他设备和这个图机型对比实现类似控件的捕获,但设备铺开后的速度,成功率都得不到可靠的保证。游戏有很多特殊性,比如变化比较快,逻辑随机等,导致你获取到控件后也很难测试,维护成本很高。

问: 加固过的包,可以做自动化测试吗?
答: 4.x的设备是支持任何加固包测试的,但5.x以上的版本加固会有一些限制,目前发现有些加固策略会导致测试失败,这块最好还是用非加固的包进行测试。

问: root和非root手机执行时有什么不同?
答: 目前4.x的手机用的是root方案,root的优势是能获取到更高的权限,这样我们就可以做更多的事情,但5.x以上的手机,本身设备root率不是很高且不稳定,并且虚拟机模式基本都切换成ART,在ART模式下的Hook支持的都不是很给力,所以我们5.x以上的设备我们采用的是重打包的方案,可以理解为注入和入住的区别。

问: 一般的应用没有点击屏幕的权限, 这个问题该如何解决?
答: 脚本回放的时候用被测应用的Instrumentation发送相应的事件处理就OK了,系统权限等弹窗可以用UI Automator去进行识别处理。

腾讯自动化测试实践分享

【视频分享】腾讯高级测试工程师黄闻欣:你从来没有想过的新Monkey测试]
SNG研发部研发的NewMonkey不仅可以做稳定性测试,还做到编译触发,自动安装最新版本,获取版本号,发现问题后,Crash去重提单,真正做到了一站式服务。

第3代Android性能测试系统(Hook System API)
腾讯Android QQ浏览器以极速著称。其研发的性能测试系统(Hook System API),不仅支持测试网页加载速度,还支持浏览器启动,点开菜单等各种用户操作场景,提供响应时间性能数据。

应用宝基于Robotium自动化测试
腾讯应用宝项目组采用FT模式,整个项目组分为多个FT,几乎每天都有多新特性合入主干,项目节奏快、变更频繁,又希望做到快速、持续交付。测试团队是如何利用Robotium支持这种研发模式下的高强度测试呢?

---------------
打开月刊原文,阅览更多内容。http://utest.qq.com/monthly/01.html
---------------
腾讯优测是专业的移动云测试平台,为应用、游戏、H5混合应用的研发团队提供产品质量检测与问题解决服务。不仅在线上平台提供自动化兼容性测试、云手机远程租用与调试、漏洞分析、自动化测试工具XTest等多种质量检测工具,更为VIP客户配备了专家团队提供定制化综合测试解决方案。