前  言 Preface
为什么要写这本书
早在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这样好的一个人才培养平台,让我们不断成长和提升,同时也非常感谢他们在百忙之中指导我们写作。
感谢腾讯科技的同事们在整个写作过程中,帮我们多次进行内容及技术层面的审核指错,尤其是王琳同学,作为每章内容的第一位读者,给了很多好的建议和思路,其他同事也对本书的内容进行了细致的评审,他们是陆小三、吴景、柳炜、沈东雄等,在此一并谢过。
感谢腾讯科技的浏览器测试团队、应用宝测试团队,在我们编写过程中他们提供的工作支持,是我们得以这么快速完成的基础。
感谢同济大学朱少民教授给我们的专业指导和鼓励,让我们更有信心完成本书的编写。
感谢机械工业出版社华章公司的编辑杨福川、孙海亮,是他们多次给予我们指导及鼓励。
感谢我们的亲人在我们周末加班写作时给予的支持与理解,你们的支持是我们最大的动力!
谨以此书献给我们最亲爱的家人,以及热爱移动业务测试的朋友们!
丁如敏等
Contents 目  录
本书编委
前言
第1章 概述
1.1 Android自动化测试框架概述
1.2 本书内容概述
第2章 自动化测试框架及应用领域综述
2.1 自动化测试框架介绍
2.1.1 一个简单的Android App自动化测试过程       
2.1.2 自动化测试框架基本原理
2.2 移动终端自动化测试应用场景
2.3 本章小结
第3章 Robotium框架工作原理及实践
3.1 Robotium常用功能
3.1.1 什么是Robotium
3.1.2 Robotium提供的类
3.1.3 环境搭建
3.1.4 Robotium的控件获取、操作及断言
3.2 Robotium原理简析
3.2.1 Robotium支持Native原理
3.2.2 Robotium支持WebView原理
3.3 Robotium实践运用
3.3.1 控件ID相同时获取控件
3.3.2 ListView列表遍历
3.3.3 修改Robotium以支持X5WebView
3.4 本章小结
第4章 Monkey基本原理及扩展应用
4.1 Monkey基础知识
4.1.1 Monkey概况
4.1.2 Monkey参数
4.1.3 Monkey事件
4.1.4 Monkey环境搭建
4.1.5 Monkey启动
4.2 Monkey测试方法
4.2.1 Monkey测试实例
4.2.2 Monkey日志分析
4.3 Monkey的基本原理
4.3.1 Monkey代码框架
4.3.2 Monkey代码逻辑详解
4.4 Monkey扩展应用示例
4.4.1 Monkey代码重编译执行方法
4.4.2 Monkey截图优化
4.4.3 Monkey Wi-Fi自动重连优化
4.4.4 Monkey扩展应用的优点和缺点
4.5 本章小结
第5章 UIAutomator框架及实践
5.1 UIAutomator简介
5.2 UIAutomator解读
5.2.1 UIAutomator框架解读
5.2.2 UIAutomator原理解读
5.2.3 UIAutomator API解读
5.3 UIAutomator实战
5.3.1 UIAutomator快速上手
5.3.2 UIAutomator设计思想
5.3.3 UIAutomator实践案例
5.4 UIAutomator总结
5.4.1 UIAutomator代码规范及建议
5.4.2 UIAutomator技巧及封装
5.5 本章小结
第6章 Appium框架解析及实践
6.1 Appium框架概况
6.1.1 Appium架构原理
6.1.2 Appium框架的优缺点
6.2 Appium框架工作解析
6.2.1 Appium环境搭建
6.2.2 HelloWorld测试示例
6.2.3 Desired Capabilities的说明
6.2.4 Appium API的解读
6.3 Appium框架在腾讯地图中的实践
6.3.1 Appium接口的封装
6.3.2 测试脚本设计思想
6.3.3 Appium在腾讯地图中的测试实践
6.3.4 Hybrid App的测试方法
6.3.5 Appium脚本常见问题及处理方法
6.4 本章小结
第7章 Android App速度测试
7.1 速度测试场景
7.2 速度测试的六大方法
7.2.1 掐表计时法
7.2.2 打印日志计时法
7.2.3 图像分析计时法
7.2.4 Hook方案计时法
7.2.5 网络包分析法
7.2.6 各种速度测试方法的优缺点
7.3 手机QQ浏览器网页打开速度测试实践案例
7.3.1 确定关键指标
7.3.2 选择测试方法
7.3.3 整体方案
7.3.4 解决关键问题
7.3.5 速度优化效果
7.4 手机QQ浏览器多窗口按钮速度实践案例
7.4.1 为什么要做多窗口按钮速度测试
7.4.2 什么是多窗口按钮速度测试
7.4.3 多窗口按钮速度测试影响因素和测试方法
7.4.4 如何进行多窗口按钮速度测试
7.5 本章小结
第8章 视频性能测试案例
8.1 视频性能测试需求分析
8.2 视频首帧性能测试方案的设计思路
8.2.1 视频播放流程
8.2.2 设计思路
8.3 视频首帧性能测试方案的具体实现
8.3.1 开发工具准备
8.3.2 测试环境准备
8.3.3 工程部署
8.3.4 关键代码和难点分析
8.3.5 编译环境配置
8.3.6 工具安装
8.4 方案优缺点
8.5 本章小结
第9章 应用宝BVT测试案例
9.1 测试工程
9.1.1 测试工程概览
9.2.1 测试工程签名
9.2 测试用例
9.2.1 测试用例生命周期
9.2.2 测试用例编写
9.2.3 测试用例执行
9.2.4 测试用例管理
9.3 测试报告
9.3.1 Spoon介绍
9.3.2 结合Spoon的出错重试与截图
9.3.3 结合Spoon生成汇总报告
9.4 Robotium跨应用
9.4.1 UIAutomator Dump方式跨应用
9.4.2 UIAutomator结合Instrumentation模式
9.5 代码覆盖率
9.5.1 覆盖率定义
9.5.2 覆盖率工具
9.5.3 JaCoCo介绍与实践
9.5.4 BVT测试与覆盖率结合
9.5.5 指导建议
9.6 本章小结
第10章 兼容性测试实践
10.1 兼容性测试概述
10.2 兼容性测试方法
10.2.1 手动测试
10.2.2 自动化测试
10.2.3 云平台测试
10.3 兼容性测试思考
10.4 本章小结

腾讯Android自动化测试实战导读相关推荐

  1. 腾讯Android自动化测试实战

    腾讯Android自动化测试实战 丁如敏 盛娟 等著 图书在版编目(CIP)数据 腾讯Android自动化测试实战 / 丁如敏等著. -北京:机械工业出版社,2016.10 ISBN 978-7-11 ...

  2. 腾讯Android自动化测试实战3.1.4 Robotium的控件获取、操作及断言

    3.1.4 Robotium的控件获取.操作及断言 Robotium是一款在Android客户端中的自动化测试框架,它需要模拟用户操作手机屏幕.要完成对手机的模拟操作,应该包含以下几个基本操作: (1 ...

  3. 腾讯Android自动化测试实战3.3.3 修改Robotium以支持X5WebView

    3.3.3 修改Robotium以支持X5WebView 本节中的X5WebView指QQ浏览器团队出品的腾讯X5内核中的WebView.除了QQ.微信.应用宝等众多腾讯内部产品在使用X5内核外,京东 ...

  4. 腾讯Android自动化测试实战3.3.2 ListView列表遍历

    3.3.2 ListView列表遍历 编写Android端的自动化测试用例,最常见的控件有ListView,而要想测试ListView,就必然要涉及ListView的遍历. 关于ListView的遍历 ...

  5. Android自动化测试初探

    本文内容:Android自动化测试框架初探 版权声明:本文为原创文章,未经允许不得转载 博客地址:http://blog.csdn.net/kevindgk 初步了解 什么是自动化测试 优点 缺点 前 ...

  6. python android自动化元素定位_linux下Appium+Python移动应用自动化测试实战---3.手把手教你定位元素编写测试用例...

    linux下Appium+Python移动应用自动化测试实战-3.手把手教你定位元素编写测试用例 前言 有很多童鞋环境搭建好了却没有进行下一步,是因为缺少step by step的资料. 互联网上ap ...

  7. 视频教程-Android 项目实战-影讯-Android

    Android 项目实战-影讯 1999年开始从事开发工作,具备十余年的开发.管理和培训经验. 在无线通信.Android.iOS.HTML5.游戏开发.JavaME.JavaEE.Linux等领域都 ...

  8. Android自动化测试第三季-金阳光-专题视频课程

    Android自动化测试第三季-9486人已学习 课程介绍         专题自动化测试 课程收益     偏实战和架构 讲师介绍     金阳光 更多讲师课程     金阳光(王劲松): 1.重庆 ...

  9. python自动测试p-关于《Python自动化测试实战》

    作者有话说 笔者写这本书的初心是想通过自身经验分享一些在自动化测试领域中的实用技术,能够帮助那些正在从事自动化测试相关工作或者准备转型自动化测试的测试人员.任何一门技术涵盖的知识点都是非常广泛的,可能 ...

最新文章

  1. 成功解决matplotlib绘图的时候横坐标或纵坐标文本显示不全/显示一半/显示不完整的问题
  2. HelloWorld实例(springmvc版)
  3. 大学计算机绘图配置,大学计算机绘图试题及答案(二)
  4. 【转】(五)unity4.6Ugui中文教程文档-------概要-UGUI Interaction Components
  5. php学习_与mysql的连接 2013.01.04
  6. 动态规划 背包九讲的实现。
  7. 链式编程和函数式编程
  8. React.js 基础入门四--要点总结
  9. [洛谷P4234]最小差值生成树
  10. 实战:自定义脚本启动mysql-mysql 5.6.19
  11. 西安电子科技计算机专业,2020西安电子科技大学计算机专业课改考
  12. NGUI中的UIGrid
  13. 安装NVIDIA显卡驱动
  14. 如何把JSON对象转为map对象
  15. C语言--简单除法运算
  16. 混沌数学之Lorenz(洛伦茨)吸引子
  17. 陀螺仪、加速计、磁力计
  18. 未转变者服务器bug,未转变者攻略 unturned无敌BUG说明
  19. Pixelmator Pro Mac(图像编辑软件)
  20. Python案例—AQI 空气质量指数

热门文章

  1. 高级控件AdapterView(一):Adapte继承体系及BaseAdapter
  2. linux 烧写google 平板的Rom
  3. Cadence 16.6 Allegro差分线的蛇形走线
  4. LNMP架构(1)——LNMP的基础知识
  5. Android RxJava的使用
  6. Transitions和animation
  7. Transitions-Everywhere
  8. JQuery.jqGrid()入门
  9. 逻辑代数常用公式及其推导
  10. C语言的运行环境及运行方法(例子)