精通移动App测试实战:技术、工具和案例

978-7-115-41707-7
作者: 于涌 王磊 曹向志
译者:
编辑: 张涛

图书目录:

目录

第 1章 Android系统基础内容介绍 1

1.1 Android系统介绍 2

1.2 Android系统架构 2

1.3 Android权限系统 4

1.4 Android相关的一些属性简介 4

1.5 搭建Android开发环境 4

1.5.1 JDK的安装与配置 5

1.5.2 Android SDK的安装 8

1.5.3 Eclipse的安装 11

1.5.4 ADT的安装与配置 12

1.5.5 集成版本的下载 15

1.6 创建模拟器 15

1.7 创建一个Android项目 20

1.7.1 创建一个新的Android

项目 20

1.7.2 如何填写Android项目

信息 20

1.7.3 配置Android项目目录

和活动信息 21

1.7.4 设计程序的原型UI 24

1.7.5 依据UI原型实现Android

项目的布局文件 24

1.7.6 布局文件内容的理解 26

1.7.7 Android项目的源代码

实现 27

1.7.8 AndroidManifest.xml文件

讲解 30

1.7.9 运行Android项目 33

第 2章 JUnit框架基础 37

2.1 JUnit框架介绍 38

2.2 JUnit在Android开发中的应用 39

2.2.1 单元测试的重要性 39

2.2.2 单元测试实施者 39

2.2.3 单元测试测试哪些内容 40

2.2.4 单元测试不测试哪些

内容 40

2.2.5 创建基于Android的测试

项目 40

2.3 应用JUnit对Android项目进行

单元测试 42

2.3.1 JUnit基于Android项目

TestCase的应用 42

2.3.2 JUnit基于Android项目

TestSuite的应用 50

第3章 ADB命令 57

3.1 Android调试桥介绍 58

3.2 ADB相关指令实例讲解 60

3.2.1 adb devices指令实例

讲解 60

3.2.2 adb install指令实例

讲解 62

3.2.3 adb uninstall指令实例

讲解 63

3.2.4 adb pull指令实例讲解 67

3.2.5 adb push指令实例讲解 70

3.2.6 adb shell指令实例讲解 73

3.2.7 adb shell dumpsys battery

指令实例讲解 75

3.2.8 adb shell dumpsys WiFi

指令实例讲解 76

3.2.9 adb shell dumpsys power

指令实例讲解 77

3.2.10 adb shell dumpsys telephony.

registry指令实例讲解 78

3.2.11 adb shell cat /proc/cpuinfo指令实例讲解 79

3.2.12 adb shell cat /proc/meminfo

指令实例讲解 80

3.2.13 adb shell cat /proc/iomem

指令实例讲解 80

3.2.14 获取手机型号指令实例

讲解 81

3.2.15 获取手机处理器信息

指令实例讲解 81

3.2.16 获取手机内存信息指令

实例讲解 82

3.2.17 获取手机屏幕分辨率

信息指令实例讲解 82

3.2.18 获取手机系统版本信息

指令实例讲解 83

3.2.19 获取手机内核版本信息

指令实例讲解 83

3.2.20 获取手机运营商信息

指令实例讲解 83

3.2.21 获取手机网络类型信息

指令实例讲解 83

3.2.22 获取手机串号信息指令

实例讲解 84

3.2.23 adb shell df指令实例

讲解 84

3.2.24 adb shell dmesg指令实例

讲解 84

3.2.25 adb shell dumpstate指令

实例讲解 86

3.2.26 adb get-serialno指令实例

讲解 87

3.2.27 adb get-state指令实例

讲解 87

3.2.28 adb logcat指令实例

讲解 88

3.2.29 adb bugreport指令实例

讲解 90

3.2.30 adb jdwp指令实例

讲解 91

3.2.31 adb start-server指令实例

讲解 92

3.2.32 adb kill-server指令实例

讲解 92

3.2.33 adb forward指令实例

讲解 92

3.2.34 am指令实例讲解 93

3.2.35 pm指令实例讲解 94

3.3 手机模拟器相关的一些操作命令

实例讲解 95

3.3.1 模拟器上模拟手机来电

命令实例讲解 95

3.3.2 模拟器上模拟发送短信

命令实例讲解 98

3.3.3 模拟器上模拟网络相关

命令实例讲解 98

3.3.4 修改模拟器的大小比例

相关命令实例讲解 100

3.3.5 模拟器的其他命令及

如何退出模拟器控制台 100

3.4 模拟器相关命令实例讲解 101

3.4.1 创建安卓虚拟设备命令

实例讲解 103

3.4.2 重命名模拟器命令实例

讲解 107

3.4.3 查看模拟器命令实例

讲解 108

3.4.4 删除模拟器命令实例

讲解 109

3.4.5 启动模拟器命令实例

讲解 109

3.5 创建安卓项目相关命令实例

讲解 110

3.6 基于控制台命令行相关命令使用

指导 112

第4章 Monkey工具使用 115

4.1 Monkey工具简介 116

4.2 Monkey演示示例 116

4.2.1 第 一个Monkey示例(针对

日历应用程序) 116

4.2.2 如何查看Monkey执行

过程信息 118

4.2.3 如何保持设定各类事件

执行比例 129

4.3 Monkey相关参数讲解 130

4.3.1 -s参数的示例讲解 131

4.3.2 -p参数的示例讲解 132

4.3.3 --throttle参数的示例

讲解 133

4.3.4 --pct-touch 参数

的示例讲解 133

4.3.5 --pct-motion 参数

的示例讲解 133

4.3.6 --pct-trackball

参数的示例讲解 133

4.3.7 --pct-nav 参数

的示例讲解 134

4.3.8 --pct-majornav

参数的示例讲解 134

4.3.9 --pct-syskeys

参数的示例讲解 134

4.3.10 --pct-appswitch

参数的示例讲解 135

4.3.11 --pct-anyevent

参数的示例讲解 135

4.3.12 --hprof参数的示例讲解

135

4.3.13 --ignore-crashes参数的

示例讲解 135

4.3.14 --ignore-timeouts参数的

示例讲解 136

4.3.15 --ignore-security-exceptions

参数的示例讲解 136

4.3.16 --kill-process-after-error

参数的示例讲解 136

4.3.17 --monitor-native-crashes

参数的示例讲解 137

4.3.18 --wait-dbg参数的示例

讲解 137

4.3.19 Monkey综合示例 137

4.4 Monkey相关命令介绍 137

4.4.1 DispatchPointer命令

介绍 149

4.4.2 DispatchTrackball命令介绍

151

4.4.3 DispatchKey命令介绍 152

4.4.4 DispatchFlip命令介绍 153

4.4.5 LaunchActivity命令

介绍 153

4.4.6 LaunchInstrumentation命令

介绍 153

4.4.7 UserWait命令介绍 153

4.4.8 RunCmd命令介绍 153

4.4.9 Tap命令介绍 154

4.4.10 ProfileWait命令介绍 154

4.4.11 DeviceWakeUp命令

介绍 154

4.4.12 DispatchString命令

介绍 154

4.5 Monkey如何执行脚本 154

第5章 MonkeyRunner工具使用 159

5.1 MonkeyRunner工具简介 160

5.2 MonkeyRunner安装部署 160

5.3 MonkeyRunner演示示例 163

5.3.1 第 一个MonkeyRunner示例

(针对游戏) 163

5.3.2 如何利用monkey_recorder.py

进行脚本录制 163

5.3.3 如何利用monkey_playback.py

进行脚本回放 169

5.3.4 如何利用monkeyhelp.html

文件获取读者想要的 170

5.4 MonkeyRunner脚本手工编写 171

5.4.1 MonkeyRunner关键类

介绍 171

5.4.2 MonkeyRunner脚本

编写 172

5.4.3 MonkeyRunner脚本

执行 173

5.5 MonkeyRunner样例脚本 174

5.5.1 按Home键 174

5.5.2 设备重启 175

5.5.3 设备唤醒 175

5.5.4 按菜单键 175

5.5.5 输入内容 175

5.5.6 控制多个设备 175

5.5.7 对比截屏和已存在

图片 175

5.5.8 单击操作 176

5.5.9 安装APK包 176

5.5.10 卸载APK包 176

5.5.11 启动Activity 176

第6章 Robotium自动化测试框架 177

6.1 Robotium自动化测试框架

简介 178

6.2 Robotium环境搭建 178

6.3 第 一个Robotium示例(针对记事本

应用程序) 178

6.3.1 记事本样例下载 178

6.3.2 记事本样例项目导入到

Eclipse 179

6.3.3 记事本样例项目运行 182

6.3.4 记事本样例功能介绍 184

6.3.5 Robotium测试用例项目

目录结构 184

6.3.6 Robotium测试用例实现

代码 185

6.3.7 Robotium测试用例代码

解析 187

6.3.8 测试用例设计思路

分析 194

6.3.9 Robotium测试用例执行

过程 195

6.4 用Robotium实现对APK或有源码

的项目实施测试 200

6.4.1 基于有源代码应用的

Robotium自动化测试 200

6.4.2 基于APK包应用的

Robotium测试项目 207

6.5 用Robotium Recorder录制

脚本 214

6.5.1 Robotium Recorder插件的

安装 214

6.5.2 应用Robotium Recorder

录制有源代码的项目 217

6.5.3 应用Robotium Recorder

录制APK包应用 223

6.6 Robotium获取控件的方法 232

6.6.1 根据控件的ID获取

控件 232

6.6.2 根据光标位置获取

控件 238

6.7 测试用例脚本的批量运行 241

6.7.1 测试用例管理 241

6.7.2 测试用例执行 249

6.7.3 生成测试报告 254

6.8 持续集成 259

6.8.1 什么叫持续集成 259

6.8.2 持续集成环境部署 260

6.8.3 创建Jenkins job 264

6.8.4 生成build.xml文件 268

6.8.5 安装测试包和被测

试包 272

6.8.6 Jenkins配置测试报告 273

6.8.7 验证持续集成成果 275

6.8.8 关于持续集成思路

拓展 278

第7章 自动化测试工具—UI Automator

实战 281

7.1 为什么选择UI Automator 282

7.2 UI Automator演示示例 282

7.2.1 UI Automator Viewer工具使用介绍 283

7.2.2 应用UI Automator等完成

单元测试用例设计基本

步骤 288

7.2.3 理解UI Automator Viewer工具捕获的元素属性

信息 291

7.2.4 UI Automator运行环境

搭建过程 292

7.2.5 编写第 一个UI Automator

测试用例 296

7.2.6 测试用例实现代码及其

讲解 302

7.2.7 查看已安装的SDK

版本 308

7.2.8 创建build.xml等相关

文件 309

7.2.9 编译生成JAR文件 311

7.2.10 上传生成JAR文件到

手机 313

7.2.11 运行测试用例并分析测试

结果 313

7.3 UI Automator主要的对象类 316

7.3.1 UiDevice类及其接口调用

实例 316

7.3.2 UiSelector类及其接口调用

实例 318

7.3.3 UiObject类及其接口调用

实例 320

7.3.4 UiCollection类及其接口

调用实例 326

7.3.5 UiWatcher类及其接口调用

实例 327

7.3.6 UiScrollable类及其接口

调用实例 329

7.3.7 Configurator类及其接口

调用实例 332

7.4 UI Automator常见问题解答 333

7.4.1 UI Automator对中文支持

问题 333

7.4.2 UI Automator如何执行

单个类里的单个测试

用例 334

7.4.3 UI Automator如何执行

单个类里的多个测试

用例 336

7.4.4 UI Automator脚本

示例 338

第8章 自动化测试工具—Appium

实战 341

8.1 为什么选择Appium 342

8.1.1 Appium的理念 342

8.1.2 Appium的设计 342

8.1.3 Appium的相关概念 343

8.2 Appium环境部署 344

8.2.1 Windows环境部署 344

8.2.2 Appium样例程序的

下载 354

8.2.3 Selenium类库的下载 355

8.2.4 建立测试工程 355

8.3 Appium元素定位的3个利器 371

8.3.1 应用UIAutomator Viewer

获得元素信息的实例 371

8.3.2 应用Inspector获得元素

信息的实例 378

8.3.3 应用Chrome浏览器ADB

插件获得元素信息的

实例 382

8.4 多种界面控件的定位方法

介绍 386

8.4.1 根据ID定位元素 386

8.4.2 根据Name定位元素 386

8.4.3 根据ClassName定位

元素 386

8.4.4 根据Content-desc定位

元素 387

8.4.5 根据Xpath定位元素 387

8.5 多种界面控件的操作方法

介绍 388

8.5.1 长按操作 389

8.5.2 拖曳操作 391

8.5.3 滑动操作 394

8.5.4 多点操作 396

8.6 捕获异常、创建快照 397

8.6.1 安装TestNG插件 397

8.6.2 创建测试项目 400

8.6.3 创建异常监听类 404

8.6.4 创建测试项目类 404

8.6.5 测试项目运行结果 407

第9章 移动平台性能测试 411

9.1 移动平台性能测试简介 412

9.1.1 性能测试的8大分类 412

9.1.2 移动终端的性能指标 413

9.2 移动端性能测试工具 414

9.2.1 TraceView工具使用

介绍 415

9.2.2 SysTrace工具使用

介绍 417

9.2.3 Emmagee工具使用

介绍 422

9.2.4 查看应用启动耗时 426

9.2.5 获得电池电量和电池

温度 427

9.2.6 获得**耗资源的应用 428

9.2.7 获得手机设备电池电量

信息 430

9.2.8 获得手机应用帧率

信息 430

9.3 LoadRunner在移动端性能测试的

应用 437

详情

本书从Android系统的介绍、移动开发环境的部署、移动应用的开发、ADB相关命令的应用、Junit单元测试工具的应用、基于Android系统稳定性测试工具Monkey的应用、移动平台自动化测试Uiautomator、Robotium自动化测试工具应用、基于Android平台性能测试等多方面理论联系实践进行了介绍。

图书摘要

相关图书

D3 4.x数据可视化实战手册(第2版)
D3 4.x数据可视化实战手册(第2版)
反应式Web应用开发
反应式Web应用开发
全栈工程师Web开发指南
全栈工程师Web开发指南
用户体验可视化指南
用户体验可视化指南
关联数据:万维网上的结构化数据
关联数据:万维网上的结构化数据
Web前端开发精品课 HTML CSS JavaScript基础教程
Web前端开发精品课 HTML CSS JavaScript基础教程

相关文章

相关课程