导语
      随着移动应用发布周期越来越紧凑、安卓品牌机型/屏幕/系统版本等碎片化日益严重,移动测试工程师的工作量日益剧增。自动化测试or手工测试?这个前些年争执不休的话题,近年来随着云测试平台的崛起似乎已有了答案——自动化测试取代部分手工测试已是一种必然趋势。
      这并不是说机器将取代人,而是人需要把资源集中在更“高端”的任务上,譬如测试方法设计、如何编写/录制脚本以提升自动化测试的效率和准确度等。
      对于中小型研发团队来说,考虑自动化测试,就必须得考虑ROI(投入产出比),自研自动化测试框架并不现实。然而市面上安卓自动化测试框架种类繁多,该如何选择,如何应用呢?
课程介绍
      app自动化测试框架应用门槛并不低,这也造成许多人对其颇感兴趣但又望而却步。
      本视频课程将作为“经验贴”,与各位分享腾讯优测自研自动化测试框架实践与经验总结。
课程大纲:
1. app自动化测试概要介绍
2. 安卓主流自动化测试框架对比与分析
3. 腾讯优测自研自动化测试框架实践分享
讲师介绍:
      Leohu(胡泊),腾讯优测自动化测试方案专家。2011年加入腾讯,2012年以来一直从事自动化测试平台搭建研究工作,实践经验丰富,为优测核心架构做出重大贡献。
问答部分
问: 新手该如何入门安卓自动化测试?
答: 了解安卓的基本原理是什么样的,一些基本的adb命令,了解Android主流的一些测试框架,看看那些适合你现在的测试需求,但其实自动化测试只是一种手段,最终还是要结合自己的业务,在非常熟悉业务的同时,分析哪些是可以自动化的,哪些弄成自动化可以大大节省人力投入,哪些是目前不适用于自动化的,然后有针对性的开展测试,测试完毕后还需要整理数据进行对比,看看真实的ROI是什么样子的,逐渐改善方案,快速跟进提升效果。
问: 面对多种自动化测试框架,该如何选择?
答: Android的自动化测试框架有很多,主要还是看你的测试目的是什么样的,然后选择合适的框架开展测试,现在业界比较流行的是Appium框架,支持定位控件,支持web类应用,支持跨平台,支持多种语言编写脚本,基本上可以满足一般性的测试需求,但录制效率偏低,且大批量真机测试不是很稳定,XTest(腾讯优测推出的私有自动化测试工具)支持快速录制回放,并保证脚本的准确性,并能在大部分真机上执行测试,大家可以尝试一下。
问: 不同厂商机型测试有什么不同吗?
答: 各个厂商主要是针对自己的ROM会做一些定制化,例如权限弹窗,悬浮窗控制,电源管理策略,通知栏消息管理,静默安装等…
问: 腾讯优测自研自动化测试框架是否支持性能测试?
答: 支持性能测试,目前可以获取到cpu、各种内存、上下行流量、安装时间、启动时间、电池温度、fps、sm。
问: 腾讯优测自研自动化测试框架是否支持iOS?
答: XTestServer支持MAC设备,但测试框架目前暂时不支持ios。
问: 腾讯优测自研自动化测试框架可以监控到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去进行识别处理。
各主流自动化框架学习入门
Appium
更多文章>
Appium 国内下载地址
Appium环境搭建(Windows+ Android +Python)篇
【Appium+python】自动化测试实践
理解【Appium框架】原理
UI Automator
更多文章>
5小时搞定谷歌原生自动化框架UI Automator1.0
UI Automator 2.0 Demo 与使用
UI Automator测试用例编写技巧
UI Automator实践技巧整理
Robotium
更多文章>
Robotium环境搭建
Robotium基础知识问答
Robotium可行性分析&实践总结
Robotium自动化测试实践之列表遍历
其他
更多文章>
移动APP自动化测试框架对比
5个最佳的Android测试框架(带示例)
什么样的自动化值得做
使用RobotFramework驾驭MonkeyRunner实践
腾讯自动化测试实践
全部>
【视频分享】腾讯高级测试工程师黄闻欣:你从来没有想过的新Monkey测试
SNG研发部研发的NewMonkey不仅可以做稳定性测试,还做到编译触发,自动安装最新版本,获取版本号,发现问题后,Crash去重提单,真正做到了一站式服务。
第3代Android性能测试系统(Hook System API)
腾讯Android QQ浏览器以极速著称。其研发的性能测试系统(Hook System API),不仅支持测试网页加载速度,还支持浏览器启动,点开菜单等各种用户操作场景,提供响应时间性能数据。
应用宝基于Robotium自动化测试
腾讯应用宝项目组采用FT模式,整个项目组分为多个FT,几乎每天都有多新特性合入主干,项目节奏快、变更频繁,又希望做到快速、持续交付。测试团队是如何利用Robotium支持这种研发模式下的高强度测试呢?