第 1章 自动化测试简介
1.1 当前软件测试的趋势 2
1.2 测试金字塔模型 4
1.3 自动化测试分层 5
1.4 UI自动化测试流程 7
1.5 测试质量评估 12
第2章 Android基础知识
2.1 移动设备操作系统概览 15
2.1.1 Android 15
2.1.2 iOS 20
2.2 App的类型与区别 20
2.3 Android App测试框架概览 23
第3章 搭建Android环境
3.1 准备Java环境26
3.2 准备Android SDK环境29
3.2.1 Android SDK下载、安装30
3.2.2 Android SDK环境变量设置31
3.3 安装Android模拟器32
3.4 准备Python环境34
3.5 安装PyCharm37
3.6 Python虚拟环境43
第4章 Android adb介绍
4.1 adb的工作原理46
4.2 启动设备或模拟器调试48
4.3 adb常用命令48
4.3.1 查看adb的版本49
4.3.2 连接或断开设备49
4.3.3 查看连接设备的信息50
4.3.4 adb shell50
4.3.5 安装App52
4.3.6 卸载App53
4.3.7 推送文件54
4.3.8 下载文件54
4.3.9 查看包名55
4.3.10 查看Activity56
4.3.11 启动、关闭adb服务57
4.3.12 屏幕截图57
第5章 monkey和monkeyrunner
5.1 monkey59
5.1.1 monkey简介59
5.1.2 monkey的参数60
5.1.3 monkey命令示例62
5.1.4 App压力测试69
5.1.5 特定场景压力测试71
5.1.6 日志管理74
5.2 monkeyrunner76
5.2.1 monkeyrunner简介77
5.2.2 monkeyrunner API78
5.2.3 综合案例81
第6章 Appium基础知识
6.1 Appium简介85
6.2 Appium的组件及运行原理87
6.2.1 Appium的组件87
6.2.2 Appium Android的运行原理88
6.3 Appium环境搭建89
6.3.1 通过GUI部署Appium Server89
6.3.2 通过命令行部署Appium Server93
6.3.3 安装Appium-Python-Client96
6.3.4 安装appium-doctor98
6.4 Desired Capability简介99
6.5 第 一个Appium脚本100
6.6 Appium报错和解决方案102
6.7 Appium终端基本操作104
第7章 Appium之元素识别与定位
7.1 UI Automator Viewer工具114
7.2 Appium Inspector工具119
7.2.1 Inspector安装120
7.2.2 Inspector参数设置122
7.2.3 Inspector识别元素123
7.3 Appium元素定位方法概览130
7.4 常规元素属性定位方法132
7.5 通用元素定位方法133
7.6 uiautomator元素定位方法136
7.6.1 UiSelector的基本方法136
7.6.2 通过text定位138
7.6.3 通过resourceId定位141
7.6.4 通过className定位143
7.6.5 通过description定位143
7.6.6 组合定位144
7.6.7 父子、兄弟关系定位145
7.6.8 控件特性定位145
7.6.9 索引、实例定位146
7.7 组元素定位方法146
7.8 XPath定位149
7.9 坐标单击152
7.10 Lazy Ui Automator Viewer154
第8章 Appium基本操作
8.1 元素的基本操作158
8.1.1 单击操作158
8.1.2 输入操作159
8.1.3 清除操作159
8.1.4 提交操作160
8.1.5 键盘操作161
8.2 元素的状态判断163
8.3 元素的属性值获取165
第9章 Appium基本操作
9.1 W3C Actions170
9.1.1 W3C Actions简介170
9.1.2 短暂触屏174
9.1.3 长按操作175
9.1.4 左滑操作176
9.1.5 多指触控178
9.2 Toast元素识别179
9.3 Hybrid App操作181
9.3.1 Context简介181
9.3.2 环境准备182
9.3.3 context操作183
9.4 屏幕截图185
9.5 屏幕熄屏、亮屏188
第10章 Appium等待机制
10.1 影响元素加载的外部因素191
10.2 强制等待192
10.3 隐性等待193
10.4 显性等待195
第11章 自动化测试用例开发
11.1 测试用例设计204
11.2 测试用例代码实现205
11.3 代码分析211
第12章 unittest测试框架
12.1 unittest框架结构213
12.2 测试固件215
12.3 编写测试用例217
12.4 执行测试用例218
12.5 用例执行顺序222
12.6 内置装饰器224
12.7 命令行执行测试227
12.8 批量执行测试文件229
12.9 测试断言231
12.10 测试报告232
12.11 unittest和Appium235
12.12 unittest参数化241
12.12.1 unittest+DDT243
12.12.2 unittest+ parameterized246
第13章 测试配置及数据分离
13.1 测试配置分离249
13.1.1 YAML简介249
13.1.2 YAML文件操作252
13.1.3 Capability配置数据分离实践254
13.2 测试固件与用例代码分离257
13.3 测试数据分离259
13.3.1 CSV简介259
13.3.2 CSV文件操作259
13.3.3 测试数据分离实践261
第14章 Page Object设计模式
14.1 Page Object实践264
14.2 “危机”应对274
14.3 新生“危机”278
第15章 自动化测试框架开发
15.1 框架设计281
15.2 优化目录层级282
15.2.1 Python os模块282
15.2.2 调整模块引用284
15.3 增加日志信息287
15.3.1 日志概述287
15.3.2 Python logging用法解析288
15.3.3 为测试用例增加日志292
15.4 增加页面截图功能299
15.4.1 断言失败截图299
15.4.2 元素定位失败截图301
15.5 增加显性等待功能301
第16章 与君共勉
16.1 关于测试数据309
16.1.1 测试数据准备309
16.1.2 冗余数据处理310
16.2 提升稳定性311
16.3 提升效率312
16.4 模拟器或真机312
附录
附录A 自动化测试开展原则315
附录B 夜神模拟器316
附录C adb常见错误318
附录D 公共及Android独有Capabilities319
附录E Android KEYCODE常用键值对应关系323
展开
—— 柯有志(华夏电通测试专家)
本书不仅介绍了 Android 自动化测试所需的基础知识,还详细介绍了各种自动化测试工具和测试框架,并对实战项目的经验进行了总结和提炼,确实是 Android 自动化测试领域的一本好书。
—— 程军(饿了么前技术产品总监)
本书紧密结合 Android 自动化测试人员学习路线,配合项目实例,以通俗易懂的语言介绍了 Android 自动化测试在企业项目落地的过程,非常值得借鉴、研究。
—— 安大叔(网易测试总监)