腾讯Android自动化测试实战[按需印刷]

更多详情

内容简介: 本书是Android自动化测试领域的里程碑著作,由腾讯*早专注APP测试的腾讯移动品质中心(TMQ)官方出品,系统总结了该团队7年多来在QQ浏览器、应用宝等多款亿级APP的自动化测试中总结出来的方法与经验。旨在帮助测试人员借助本书内容和开源工具,结合项目实际需求,轻松开展自动化测试工作,搭建适用的自动化测试体系。
具体内容分为两个部分:
第一部分 Android自动化测试技术
结合腾讯自身和其他互联网公司的自动化框架使用情况,选择了有代表性的4个开源框架(Monkey、Robotium、UIAutomator、Appium)进行重点讲解,循序渐近、由浅入深,引导读者全面理解框架的原理、用法及高级功能,使读者能轻易上手。
第二部分 Android自动化测试实战
主要以QQ浏览器(Android)、应用宝(Android)、地图等产品为例,涵盖单元测试、功能测试、性能测试、测试覆盖率分析、兼容性测试等内容,并给出开源框架的二次开发应用,提供了具体细致的解决方案,具有极高的参考价值。


目录: 本书编委

前言
第1章 概述 1
1.1 Android自动化测试框架概述 1
1.2 本书内容概述 5
第2章 自动化测试框架及应用领域综述 8
2.1 自动化测试框架介绍 9
2.1.1 一个简单的Android App自动化测试过程 9
2.1.2 自动化测试框架基本原理 11
2.2 移动终端自动化测试应用场景 15
2.3 本章小结 17
第3章 Robotium框架工作原理及实践 18
3.1 Robotium常用功能 19
3.1.1 什么是Robotium 19
3.1.2 Robotium提供的类 20
3.1.3 环境搭建 21
3.1.4 Robotium的控件获取、操作及断言 26
3.2 Robotium原理简析 40
3.2.1 Robotium支持Native原理 40
3.2.2 Robotium支持WebView原理 46
3.3 Robotium实践运用 52
3.3.1 控件ID相同时获取控件 52
3.3.2 ListView列表遍历 53
3.3.3 修改Robotium以支持X5WebView 55
3.4 本章小结 58
第4章 Monkey基本原理及扩展应用 60
4.1 Monkey基础知识 61
4.1.1 Monkey概况 61
4.1.2 Monkey参数 61
4.1.3 Monkey事件 65
4.1.4 Monkey环境搭建 69
4.1.5 Monkey启动 70
4.2 Monkey测试方法 71
4.2.1 Monkey测试实例 71
4.2.2 Monkey日志分析 78
4.3 Monkey的基本原理 84
4.3.1 Monkey代码框架 85
4.3.2 Monkey代码逻辑详解 87
4.4 Monkey扩展应用示例 91
4.4.1 Monkey代码重编译执行方法 91
4.4.2 Monkey截图优化 96
4.4.3 Monkey Wi-Fi自动重连优化 102
4.4.4 Monkey扩展应用的优点和缺点 106
4.5 本章小结 106
第5章 UIAutomator框架及实践 107
5.1 UIAutomator简介 108
5.2 UIAutomator解读 109
5.2.1 UIAutomator框架解读 109
5.2.2 UIAutomator原理解读 114
5.2.3 UIAutomator API解读 120
5.3 UIAutomator实战 131
5.3.1 UIAutomator快速上手 132
5.3.2 UIAutomator设计思想 138
5.3.3 UIAutomator实践案例 141
5.4 UIAutomator总结 151
5.4.1 UIAutomator代码规范及建议 151
5.4.2 UIAutomator技巧及封装 152
5.5 本章小结 155
第6章 Appium框架解析及实践 156
6.1 Appium框架概况 157
6.1.1 Appium架构原理 157
6.1.2 Appium框架的优缺点 158
6.2 Appium框架工作解析 159
6.2.1 Appium环境搭建 159
6.2.2 HelloWorld测试示例 163
6.2.3 Desired Capabilities的说明 168
6.2.4 Appium API的解读 171
6.3 Appium框架在腾讯地图中的实践 175
6.3.1 Appium接口的封装 175
6.3.2 测试脚本设计思想 181
6.3.3 Appium在腾讯地图中的测试实践 182
6.3.4 Hybrid App的测试方法 189
6.3.5 Appium脚本常见问题及处理方法 191
6.4 本章小结 193
第7章 Android App速度测试 194
7.1 速度测试场景 195
7.2 速度测试的六大方法 196
7.2.1 掐表计时法 198
7.2.2 打印日志计时法 199
7.2.3 图像分析计时法 200
7.2.4 Hook方案计时法 203
7.2.5 网络包分析法 207
7.2.6 各种速度测试方法的优缺点 209
7.3 手机QQ浏览器网页打开速度测试实践案例 209
7.3.1 确定关键指标 209
7.3.2 选择测试方法 210
7.3.3 整体方案 211
7.3.4 解决关键问题 212
7.3.5 速度优化效果 228
7.4 手机QQ浏览器多窗口按钮速度实践案例 228
7.4.1 为什么要做多窗口按钮速度测试 229
7.4.2 什么是多窗口按钮速度测试 229
7.4.3 多窗口按钮速度测试影响因素和测试方法 230
7.4.4 如何进行多窗口按钮速度测试 231
7.5 本章小结 234
第8章 视频性能测试案例 235
8.1 视频性能测试需求分析 236
8.2 视频首帧性能测试方案的设计思路 237
8.2.1 视频播放流程 237
8.2.2 设计思路 238
8.3 视频首帧性能测试方案的具体实现 240
8.3.1 开发工具准备 240
8.3.2 测试环境准备 241
8.3.3 工程部署 242
8.3.4 关键代码和难点分析 244
8.3.5 编译环境配置 262
8.3.6 工具安装 264
8.4 方案优缺点 265
8.5 本章小结 265
第9章 应用宝BVT测试案例 267
9.1 测试工程 268
9.1.1 测试工程概览 268
9.2.1 测试工程签名 269
9.2 测试用例 271
9.2.1 测试用例生命周期 271
9.2.2 测试用例编写 273
9.2.3 测试用例执行 277
9.2.4 测试用例管理 279
9.3 测试报告 279
9.3.1 Spoon介绍 279
9.3.2 结合Spoon的出错重试与截图 282
9.3.3 结合Spoon生成汇总报告 287
9.4 Robotium跨应用 287
9.4.1 UIAutomator Dump方式跨应用 288
9.4.2 UIAutomator结合Instrumentation模式 289
9.5 代码覆盖率 292
9.5.1 覆盖率定义 292
9.5.2 覆盖率工具 293
9.5.3 JaCoCo介绍与实践 295
9.5.4 BVT测试与覆盖率结合 305
9.5.5 指导建议 309
9.6 本章小结 309
第10章 兼容性测试实践 311
10.1 兼容性测试概述 311
10.2 兼容性测试方法 313
10.2.1 手动测试 313
10.2.2 自动化测试 314
10.2.3 云平台测试 324
10.3 兼容性测试思考 336
10.4 本章小结 336

前言: 为什么要写这本书
早在2010年年底,我们团队就有出一本关于移动互联网测试书籍的计划(那时候移动互联网测试书籍基本没有),当时计划的内容涉及面比较广,涵盖测试设计、测试用例管理、测试流程、自动化测试、专项测试等领域。不过,由于各种原因被搁浅,确实有点儿可惜,否则移动互联网测试国内的第一本书当时就面世了。这次终于又有机会整理这些年的测试经验并形成一本书了,借此可以跟业界的同行一起交流切磋。
TMQ(Tencent Mobile Quality)腾讯移动品质中心,是腾讯内部最早专注于移动App测试的团队,在10余年的时间内承担了近10款业界领先产品的测试工作,为腾讯向移动方向转型提供了多项质量方案和关键专利。本书的作者都是TMQ平台的核心成员,服务于公司级的手机QQ浏览器、应用宝等项目,经过这几年在移动测试领域的探索与实践,摸索出了一些实实在在的实践经验。TMQ的老板鼓励我们把这些知识和经验编写成册,这样不仅能为公司内部提供好的产品服务,也能为业界同人提供参考,从而将知识更好地扩散出去。我们团队非常珍惜这次写书的机会,故组织了团队内Android自动化测试方面经验丰富的同学一起来编写。大家都是利用自己的业余时间总结各自擅长领域的经验和知识,且初稿经过6轮的内部评审(参加评审的同事超过30位),前后历时半年多才最终完成了本书的写作和修改,希望能给读者提供一本质量较高的专业书籍。
TMQ经过这几年的积累,在专项测试、精准测试体系及自动化测试方面都有比较多的精辟之作。基于此,我们分小组对这些知识进行了整理,形成了相应的知识库,完成了本系列丛书,包括《移动互联网App性能评测调优实践》《精准化测试白皮书》《腾讯Android自动化测试实战》3本书,其他两本也在同期编写出版工作中。希望TMQ平台出品的书籍能给予读者思路上的指导或者是技术上的解惑。
除封面署名外,参加本书编写的作者还有:陈航特、陈六四、邓曦、高苡新、林凯杰、刘洋、鲁万林、万宇、郑若琳、钟书成共12位作者(按姓氏拼音排序),都是来自腾讯移动端QQ浏览器及应用宝团队的骨干员工。
读者对象
本书是一本务实的书籍,案例都是作者们的第一手资料,对于软件质量保证方面的初学者,本书还提供了简短的案例以帮助其理解,循序渐进,掌握测试核心原理;对于有经验的同行,本书提供了经典案例帮助其提升与参考。这里根据行业实际需求给出了相应的用户群体:
对移动业务测试感兴趣的人;
对Android自动化测试感兴趣的人;
即将开展Android自动化测试的团队;
开设相关课程的院校师生。
本书特色
Android自动化测试经过这几年的发展,官方提供的开源自动化框架已经能非常好地支持终端的测试业务,但是如何利用、如何用好这些资源还是比较现实客观的问题,尤其是在小公司中,自动化测试方法的摸索及实施还存在一些困难,需要一定的投入才能得以真正应用。业界一些Android自动化测试方面的书籍很多都偏原理的介绍,而本书不仅深度解析这些框架的原理,还给出了手机QQ浏览器、应用宝项目中的典型案例,像最常见的App速度、要求较高的视频播放性能测试等,供需要实践的读者学习,这也是本书的重要特色之一。本书前半部分主要介绍业界流行的Android自动化框架的基础知识,聚焦工具框架的原理以及基础API使用、框架的二次开发改造(根据具体项目做相应修改),以及实践过程中一些共性问题的分享。如果读者已经掌握这些框架基础,那么对本书内容的理解就会更容易。同时读者可以重点关注本书中介绍的对框架进行二次开发的内容,并结合自己的实际项目考虑如何应用这些知识提升自己的工作效率;基础比较高的读者可跳过这部分直接阅读后半部分。后半部分通过一些实际案例来讲解自动化框架的应用,更强调系统性分析设计能力,包括需求的分析、工具选型、测试方案、代码覆盖率的应用等,覆盖功能测试、性能测试的具体实战案例。这部分对读者的技术能力要求相对更高一些,涉及的知识点的深度和广度要明显高于前半部分,需要进行Android App应用的性能速度测试的读者可以深入阅读,领会书中所提场景的测试设计与思路,进而掌握框架的精髓所在。在经典案例中也给出了很多具体实现思路的介绍与分析,让读者知其然、并知其所以然,同时各位作者也把项目测试工程代码加以整理,打包至TMQ后台,供读者下载,读者如有需要可以直接导入工程进行调试学习,以大大减少学习成本。读者可以根据自己的需求阅读相应章节的内容:如熟悉Java语言,又面临Debug未混淆被测App的情况,建议直接学习Robotium框架,因为Robotium操作简单、相关资料丰富,还能支持ant、maven打包,与jenkins结合较好;因Robotium不支持跨应用,所以对于需要支持跨应用的框架,读者可以阅读UIAutomator和Appium框架,其中Appium是借助WebDriver JSON协议实现的,能支持多种语言编写测试脚本;对于有一定经验的读者,在案例选择时可以结合Robotium和UIAutomator的优点一起使用,此时可直接阅读本书中的浏览器视频性能测试案例。
勘误和支持
本书作者分别在深圳、北京、成都、合肥四地办公,所以整个写作过程中异地沟通比较多,整书从选题至初稿形成,差不多花了5个月的时间,速度超过我们的预期,但由于作者的水平有限、异地交流、编写时间仓促等,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。为此,我们特意在TMQ的官网创建了一个在线支持:http://tmq.qq.com。你可以将书中的错误发布在新书勘误表页面中,我们将尽量在线上为读者提供最满意的解答。书中的全部源文件除可以从华章官方网站(http://www.hzbook.com)下载外,还可以从TMQ网站下载,我们也会将相应的错误及时更正。如果你有更多的宝贵意见,也欢迎发送邮件至邮箱dinahsheng@tencent.com,期待能够得到你们的真挚反馈。
致谢
感谢腾讯科技MIG无发研发部总经理冼文佟、助理总经理陈诚,正是他们鼓励我们多总结、多分享、把知识传播,我们才有了写书的想法。
感谢腾讯科技MIG无发研发部品质中心的总监廖志、李德广、张鼎,给我们提供TMQ这样好的一个人才培养平台,让我们不断成长和提升,同时也非常感谢他们在百忙之中指导我们写作。
感谢腾讯科技的同事们在整个写作过程中,帮我们多次进行内容及技术层面的审核指错,尤其是王琳同学,作为每章内容的第一位读者,给了很多好的建议和思路,其他同事也对本书的内容进行了细致的评审,他们是陆小三、吴景、柳炜、沈东雄等,在此一并谢过。
感谢腾讯科技的浏览器测试团队、应用宝测试团队,在我们编写过程中他们提供的工作支持,是我们得以这么快速完成的基础。
感谢同济大学朱少民教授给我们的专业指导和鼓励,让我们更有信心完成本书的编写。
感谢机械工业出版社华章公司的编辑杨福川、孙海亮,是他们多次给予我们指导及鼓励。
感谢我们的亲人在我们周末加班写作时给予的支持与理解,你们的支持是我们最大的动力!
谨以此书献给我们最亲爱的家人,以及热爱移动业务测试的朋友们!
丁如敏等

序言: 最近和腾讯移动品质中心(TMQ)接触比较多,除了技术的交流,还邀请TMQ资深人士参加了某个软件工程论坛并做了分享,关注了TMQ公众号。现在很高兴为这个优秀团队的新书《腾讯Android自动化测试实战》写序,因为可以先睹为快,提前学习腾讯的经验。
现在移动应用很普及了,无须摆事实、讲道理,读者都深有体会。但10年前,移动应用还相对落后,那时TMQ就已经开始专注移动App的测试,故这个团队在移动应用专项测试、精准测试体系及自动化测试方面都有着丰富的实战经验。这本书就是他们2015年策划的移动测试领域的3本新书之一。这本书专注Android自动化测试,覆盖了从环境配置、UI元素获取、用例编写到脚本开发、编译、执行等整个移动应用的生命周期。针对常用的Android自动化测试框架和工具,如Appium、Monkey、Robotium和UIAutomator 等都进行了详细介绍,从其原理简析开始,循序渐进地介绍了其安装、设置以及API调用等知识,并围绕着实例详细介绍了其应用实践、技巧,读者一面看书、一面实践,就能轻松掌握Android自动化测试的技能。
虽然是小小的App应用,涉及的技术却不比桌面或Web低,反而由于资源更宝贵、网络连接不稳定、迭代更快、用户体验要求更高等,在单元测试、性能测试、压力测试、兼容性测试、速度测试等各方面都更具挑战性,测试人员还要面对Native、WebView和HTML5等不同技术。本书对上述所有内容,包括一些具体的技术细节,如非耦合式用例设计、API接口的封装等,都有很好的交代。书中还提供了完整的实例,从测试工程概览、签名开始,到测试用例编写、执行、管理,再到结合Spoon生成汇总报告,一气呵成。
注重品质的团队,写起书来也绝不会忽视质量,这本书就是一个典范。TMQ将书的质量放在首位,不仅选择最有经验的测试工程师组成一支很强的写作团队,而且初稿出来之后经过了6轮的内部评审,参加评审的人员之多、评审时间之长,是绝无仅有的,因此这样写出来的书,质量是有保证的。
本书不仅介绍了Android自动化框架的基础知识、原理和API使用,而且分析过程逻辑清楚,设计和实现思路清新自然,还触及一些较深的主题,如框架的二次开发等,故本书适合不同层次的测试人员和开发人员学习。借助网站的在线支持,本书如虎添翼,更加保证了读者的学习效果。
综上所述,本书是一本值得向大家推荐的好书,大家一定会喜欢的。有了“她”,轻松完成Android自动化测试也就不在话下了。
朱少民
于上海

媒体评论: 腾讯MIG的测试团队是国内*早期活跃的移动端测试探索者,也是移动APP时代以来*卓有成效的移动端测试实践者。在过去的六七年里,MIG测试团队帮助手机QQ浏览器从零起步,成长为现在服务几亿用户的成熟产品,过程中历经艰辛却也颇有收获。尤其是在自动化测试方面,探索出了很多适用于浏览器这样复杂逻辑应用的自动化测试方法,为产品提供高质量品质保障的同时也节省下大量的时间和人力。在自动化测试的领先方法探索、接地气的项目实践积累上,他们是很有话语权的团队之一,不信可以读下这本书。
——莫沙 腾讯浏览器产品部副总经理
进入移动互联网时代后,APP的版本迭代速度成为一个非常重要的核心竞争力。应用宝这个产品从开始2个月的版本迭代周期优化到现在2周,其中怎么优化每个版本的测试效率成为一个关键点。在过去的一年里不断和测试团队产品碰撞,不断的优化流程、方法和工具。今天很高兴看到了团队将这些经验和方法编写成书,希望这本书内容可以帮助读者朋友们提升效率。
——管琰平 应用宝研发负责人腾讯T4专家
几乎是一口气,我就读完了《腾讯Android自动化测试实战》这本书,就像接到盛娟同学的邀请为该书写点什么时,内心很痛快,没有丝毫拖泥带水的感觉。我想,这主要是来源于本书所呈现的内容,的确都是实战在安卓自动化测试一线腾讯同行们的*佳实践,也准确地切中了面向互联网移动产品进行质量保障的广大工程人员工作中的痛点。随着安卓生态的飞速演化,如何有效提高测试的敏捷性,解决系统碎片化带来的挑战一直是各个测试团队面临的一道坎,腾讯移动质量团队已经在本书中给出了很棒的示范!
——孙昆 奇虎360手机卫士事业部 测试总监
随着移动互联网高速发展,一方面移动App的开发门槛较以往传统PC时代正逐渐下降,另外一方面app的发布却在不断提速,从应用开发到终端用户,更是对移动端App提出了更高的质量要求。反观移动平台的测试积累,不少公司、项目还处于起步阶段,如何能够把移动领域的测试快速做到从入门到实际深入应用,腾讯TMQ团队推出的《腾讯Android自动化测试实战》一书正好提供了大量这方面的经验。对于我们测试同行,尤其是对移动业务、Android自动化测试感兴趣的同行,具很大的指导意义。相信这些案例和经验,能够帮助大家在移动测试领域中有所提升。
——孙国军 西山居质量总监
本书涵盖了详尽的主流移动UI自动化框架的理论及心得,更难能可贵的提供了腾讯内部关于框架的二次开发及实践,对即将进入移动端自动化的团队或个人起到很好的参考作用.
——李毅 顺丰测试架构师