第1章 自动化测试概述 1
1.1自动化测试定义和分类 1
1.2自动化测试的目的 3
1.2.1提高软件质量 3
1.2.2提高测试效率 5
1.3自动化测试实施三要素 6
1.3.1有明确的目标 6
1.3.2有足够的资源 7
1.3.3有合理的计划 8
第2章 TestNG语法 12
2.1 TestNG简介 12
2.2测试前的准备工作 12
2.2.1配置Maven 12
2.2.2创建工程 14
2.2.3测试执行 16
2.3 TestNG注解 19
2.3.1前置条件和后置条件 20
2.3.2数据驱动 24
2.3.3测试用例 25
2.4 testng.xml 28
2.4.1 〈package〉 28
2.4.2 〈include〉和〈exclude〉 30
2.4.3 〈parameter〉标签 32
第3章 单元自动化测试 34
3.1编写待测程序 34
3.2手工测试用例设计 35
3.2.1分析待测程序 35
3.2.2测试用例设计 35
3.3设计自动化测试用例 36
3.3.1基于JUnit设计自动化测试用例 36
3.3.2基于TestNG设计自动化测试用例 38
3.4 Spring的单元自动化测试 42
3.4.1 Java企业级应用简介 42
3.4.2编写待测程序 44
3.4.3单元自动化测试 50
第4章 HTTP接口自动化测试 56
4.1 HTTP简介 56
4.2部署待测程序 57
4.3手工测试用例设计 58
4.3.1分析待测接口 58
4.3.2测试用例设计 60
4.4 HttpClient用法 62
4.4.1 HttpClient简介 62
4.4.2创建工程 63
4.4.3发送HTTP请求 64
4.4.4处理服务器响应 66
4.4.5设置请求头 68
4.5 TestNG集成HttpClient 68
4.5.1 RESTful接口自动化测试 69
4.5.2 SOAP接口自动化测试 81
第5章 RPC接口自动化测试 87
5.1 RPC简介 87
5.2部署待测程序 88
5.3手工测试用例设计 90
5.3.1分析待测接口 90
5.3.2测试用例设计 91
5.4 TestNG Dubbo接口自动化测试 92
5.4.1基于XML方式 94
5.4.2基于API方式 99
5.4.3基于注解方式 100
5.4.4泛化调用 102
第6章 Web自动化测试 107
6.1 Web自动化测试工具(框架)简介 107
6.2部署待测程序 108
6.3 Selenium用法 109
6.3.1准备 109
6.3.2元素操作 110
6.3.3鼠标事件 115
6.3.4键盘事件 118
6.3.5浏览器操作 119
6.3.6 JavaScript对话框处理 121
6.3.7等待处理 124
6.4 TestNG集成Selenium 129
第7章 Android自动化测试 133
7.1 Android自动化测试工具(框架)简介 133
7.2安装待测应用 134
7.3 Appium用法 134
7.3.1准备 134
7.3.2初始化参数 136
7.3.3元素操作 139
7.3.4应用操作 145
7.3.5系统操作 146
7.3.6使用Android模拟器 147
7.4 TestNG集成Appium 148
第8章 iOS自动化测试 151
8.1 iOS自动化测试工具(框架)简介 151
8.2待测应用开发 151
8.2.1工程创建 152
8.2.2界面开发 152
8.2.3逻辑开发 155
8.3 Appium的用法 159
8.3.1准备 159
8.3.2初始化参数 160
8.3.3元素操作 161
8.3.4应用操作 167
8.3.5系统操作 169
8.3.6使用iOS模拟器 169
8.4 TestNG集成Appium 171
第9章 自动化测试实战 174
9.1实战项目部署安装 174
9.1.1 JForum论坛部署 174
9.1.2 AnExplorer文件管理器安装 177
9.2 Web自动化测试实战 177
9.2.1分层和解耦 177
9.2.2公共函数和业务函数封装 180
9.2.3自动化测试用例编写 186
9.2.4测试数据准备 189
9.3 Android自动化测试实战 192
9.3.1工程准备 192
9.3.2 Page Object设计模式 193
9.3.3页面对象层封装 195
9.3.4业务逻辑层封装 203
9.3.5自动化测试用例编写 204
9.4进一步优化 207
第10章 持续集成 208
10.1持续集成、持续交付和持续部署 208
10.2 Jenkins的重要功能简介 209
10.2.1 Jenkins部署 209
10.2.2任务管理 211
10.2.3构建管理 212
10.2.4节点管理 213
10.2.5插件管理 213
10.2.6用户管理 215
10.3 TestNG集成到Jenkins 216
10.3.1 TestNG工程创建 216
10.3.2 SVN部署及使用 218
10.3.3 JDK和Maven配置 220
10.3.4把TestNG集成到Jenkins 221
第11章 Mock测试和代码覆盖率 225
11.1单元Mock测试 225
11.1.1单元Mock测试简介 225
11.2.2 Mockito用法 225
11.2接口Mock测试 230
11.2.1接口Mock测试简介 230
11.2.2 RAP2用法 230
11.3代码覆盖率简介 234
11.4 JaCoCo用法 235
11.4.1 JaCoCo计数器 235
11.4.2使用EclEmma插件 236
11.4.3 Maven集成JaCoCo 239