第1章 自动化测试基础 1
1.1 软件测试分类 1
1.2 分层的自动化测试 6
1.3 什么样的项目适合自动化测试 9
1.4 自动化测试及工具简述 10
1.5 Selenium工具介绍 11
1.6 前端技术介绍 14
1.7 前端工具介绍 16
1.8 开发语言的选择 19
第2章 测试环境搭建 21
2.1 Windows 下的环境搭建 21
2.1.1 安装Python 22
2.1.2 安装setuptools与pip 24
2.1.3 安装Selenium 26
2.1.4 ActivePython 26
2.2 Ubuntu下的环境搭建 28
2.3 使用IDLE编写Python 29
2.4 编写第一个自动化脚本 32
2.5 安装浏览器驱动 34
2.6 不同编程语言下使用WebDriver 35
第3章 Python基础 37
3.1 Python哲学 37
3.2 输出与输入 39
3.2.1 print打印 40
3.2.2 input输入 41
3.2.3 引号与注释 41
3.3 分支与循环 43
3.3.1 if语句 43
3.3.2 for语句 45
3.4 数组与字典 47
3.4.1 数组 47
3.4.2 字典 47
3.5 函数、类和方法 49
3.5.1 函数 49
3.5.2 类和方法 50
3.6 模组 52
3.6.1 引用模块 52
3.6.2 模块调用 55
3.6.3 跨目录模块调用 56
3.6.4 进一步讨论跨目录模块调用 56
3.7 异常 60
3.7.1 认识异常 60
3.7.2 更多异常用法 64
3.7.3 抛出异常 66
本章小结 66
第4章 WebDriver API 68
4.1 从定位元素开始 68
4.1.1 id定位 72
4.1.2 name定位 73
4.1.3 class定位 73
4.1.4 tag定位 73
4.1.5 link定位 73
4.1.6 partial link定位 74
4.1.7 XPath定位 75
4.1.8 CSS定位 78
4.1.9 用By定位元素 82
4.2 控制浏览器 83
4.2.1 控制浏览器窗口大小 83
4.2.2 控制浏览器后退、前进 84
4.2.3 模拟浏览器刷新 85
4.3 简单元素操作 86
4.3.1 126邮箱登录 86
4.3.2 WebElement接口常用方法 87
4.4 鼠标事件 89
4.5 键盘事件 92
4.6 获得验证信息 93
4.7 设置元素等待 95
4.7.1 显式等待 95
4.7.2 隐式等待 98
4.7.3 sleep休眠方法 99
4.8 定位一组元素 100
4.9 多表单切换 104
4.10 多窗口切换 106
4.11 警告框处理 108
4.12 上传文件 110
4.12.1 send keys实现上传 110
4.12.2 AutoIt实现上传 111
4.13 下载文件 116
4.14 操作Cookie 117
4.15 调用JavaScript 120
4.16 处理HTML5的视频播放 123
4.17 窗口截图 124
4.18 关闭窗口 125
4.19 验证码的处理 125
4.20 WebDriver原理 128
本章小结 130
第5章 自动化测试模型 132
5.1 自动化测试模型介绍 133
5.1.1 线性测试 133
5.1.2 模块化驱动测试 134
5.1.3 数据驱动测试 134
5.1.4 关键字驱动测试 136
5.2 模块化驱动测试实例 138
5.3 数据驱动测试实例 140
5.3.1 参数化邮箱登录 141
5.3.2 参数化搜索关键字 142
5.3.3 读取txt文件 143
5.3.4 读取csv文件 144
5.3.5 读取xml文件 146
本章小结 150
第6章 Selenium IDE 151
6.1 Selenium IDE安装 151
6.1.1 在线安装 151
6.1.2 下载插件安装 153
6.2 Selenium IDE界面介绍 154
6.3 创建测试用例 155
6.3.1 录制脚本 155
6.3.2 编辑脚本 156
6.4 Selenium IDE命令 159
6.5 断言与验证 162
6.5.1 断言 164
6.5.2 验证 165
6.6 等待与变量 167
6.6.1 等待 167
6.6.2 变量 167
本章小结 169
第7章 unittest单元测试框架 170
7.1 认识unittest 171
7.1.1 认识单元测试 171
7.1.2 重要的概念 174
7.1.3 断言方法 176
7.1.4 组织单元测试用例 181
7.1.5 discover更多测试用例 184
7.2 关于unittest还需要知道的 187
7.2.1 用例执行的顺序 188
7.2.2 执行多级目录的用例 190
7.2.3 跳过测试和预期失败 191
7.2.4 fixtures 193
7.3 带unittest的脚本分析 195
7.4 编写Web测试用例 200
本章小结 203
第8章 自动化测试高级应用 204
8.1 HTML测试报告 204
8.1.1 修改HTMLTestRunner 205
8.1.2 生成HTML测试报告 206
8.1.3 更易读的测试报告 208
8.1.4 测试报告文件名 209
8.1.5 项目集成测试报告 212
8.2 自动发邮件功能 213
8.2.1 发送HTML格式的邮件 216
8.2.2 发送带附件的邮件 217
8.2.3 查找最新的测试报告 218
8.2.4 整合自动发邮件功能 219
8.3 Page Object设计模式 221
8.3.1 认识Page Object 221
8.3.2 Paget Object实例 223
本章小结 228
第9章 Selenium Grid2 229
9.1 Selenium Server环境配置 229
9.2 Selenium Grid工作原理 233
9.3 Remote应用 236
9.3.1 WebDriver驱动分析 237
9.3.2 Remote实例 243
9.3.3 参数化平台及浏览器 243
9.4 WebDriver驱动 246
9.4.1 Edge浏览器 249
9.4.2 Opera浏览器 250
9.4.3 Safari浏览器 251
9.4.4 HtmlUnit模式 251
9.4.5 PhantomJS模式 252
本章小结 254
第10章 Python多线程 255
10.1 单线程的时代 256
10.2 多线程技术 258
10.2.1 threading模块 258
10.2.2 优化线程的创建 260
10.2.3 创建线程类 262
10.3 多进程技术 263
10.3.1 multiprocessing模块 263
10.3.2 Pipe和Queue 266
10.4 应用于自动化测试 268
10.4.1 多线程执行测试用例 269
10.4.2 多线程分布式执行测试用例 270
本章小结 272
第11章 自动化测试项目实战 273
11.1 自动化测试用例设计 273
11.1.1 手工测试用例与自动化测试用例 273
11.1.2 测试类型 275
11.1.3 自动化测试用例编写原则 276
11.2 BBS社区项目实战 277
11.2.1 准备工作 277
11.2.2 项目结构介绍 278
11.2.3 编写公共模块 281
11.2.4 编写Page Object 283
11.2.5 编写测试用例 286
11.2.6 执行测试用例 289
本章小结 291
第12章 BDD框架之Lettuce入门 292
12.1 什么是BDD 292
12.2 安装Lettuce 294
12.3 阶乘的例子 295
12.3.1 什么是阶乘 295
12.3.2 编写BDD实现 296
12.3.3 添加测试场景 300
12.3.4 Lettuce目录结构与执行过程 303
12.4 Lettuce webdriver自动化测试 303
本章小结 308
第13章 GitHub托管项目 309
13.1 注册与安装 310
13.1.1 注册GitHub 310
13.1.2 安装Git 310
13.1.3 建立连接 311
13.2 Git/GitHub基本使用 314
13.2.1 GitHub创建项目 314
13.2.2 本地创建项目 315
13.2.3 克隆项目 318
13.2.4 更新项目 319
本章小结 323
第14章 持续集成Jenkins入门 324
14.1 环境搭建 325
14.2 创建任务 328
14.3 运行构建 333
14.4 定时执行构建 335
本章小结 338