第1章 自动化测试基础1
1.1 自动化测试简介1
1.1.1 自动化测试的定义2
1.1.2 自动化测试与手工测试的关系2
1.1.3 何时开展自动化测试3
1.1.4 自动化测试的优势4
1.1.5 自动化测试的实施场景4
1.1.6 自动化测试的成本5
1.2 自动化测试工具6
1.2.1 自主开发测试工具6
1.2.2 开源测试工具7
1.2.3 商业测试工具7
1.2.4 自动化测试工具的选择8
1.2.5 “年度最佳”自动化测试工具10
前言
第1章 自动化测试基础1
1.1 自动化测试简介1
1.1.1 自动化测试的定义2
1.1.2 自动化测试与手工测试的关系2
1.1.3 何时开展自动化测试3
1.1.4 自动化测试的优势4
1.1.5 自动化测试的实施场景4
1.1.6 自动化测试的成本5
1.2 自动化测试工具6
1.2.1 自主开发测试工具6
1.2.2 开源测试工具7
1.2.3 商业测试工具7
1.2.4 自动化测试工具的选择8
1.2.5 “年度最佳”自动化测试工具10
1.3 自动化测试的分层13
第2章 Selenium基础16
2.1 Selenium简介16
2.1.1 Selenium的特点16
2.1.2 Selenium的发展史17
2.1.3 Selenium的工具集17
2.1.4 Selenium 3.0的新特性20
2.2 成就“大神”之路21
2.2.1 开发语言21
2.2.2 前端知识21
2.2.3 前端工具24
2.2.4 网络基础知识27
2.2.5 开发语言技能28
2.2.6 持续集成28
2.2.7 分布式28
2.2.8 自动化测试平台28
第3章 环境部署29
3.1 Python的安装29
3.1.1 Windows环境下的Python安装30
3.1.2 Linux环境下的Python安装35
3.2 Selenium的安装36
3.2.1 在线安装36
3.2.2 离线安装37
3.3 IDE工具的选择40
3.3.1 PyCharm简介40
3.3.2 PyCharm的安装41
3.3.3 PyCharm的简单使用42
3.4 浏览器驱动程序的安装46
3.4.1 Chrome浏览器的安装46
3.4.2 Firefox浏览器的安装49
第4章 Selenium IDE52
4.1 Selenium IDE简介52
4.1.1 Selenium IDE的安装52
4.1.2 Selenium IDE的运行56
4.2 Selenium IDE菜单栏59
4.3 Selenium IDE工具栏62
4.4 Selenium IDE地址栏65
4.5 测试用例窗口65
4.5.1 导航面板66
4.5.2 脚本编辑区域72
4.6 日志窗口与引用窗口75
4.7 Katalon Studio自动化测试76
4.7.1 Katalon Recorder的安装76
4.7.2 案例:Katalon Recorder的数据驱动83
第5章 元素定位86
5.1 元素定位简介86
5.2 浏览器定位元素87
5.2.1 Firefox浏览器87
5.2.2 Chrome浏览器88
5.3 Web元素定位89
5.3.1 ID定位90
5.3.2 name定位91
5.3.3 class定位92
5.3.4 tag定位96
5.3.5 link定位98
5.3.6 partial_link_text定位99
5.3.7 XPath定位元素100
5.3.8 CSS定位元素108
5.3.9 find_element定位112
第6章 WebDriver API剖析115
6.1 操作浏览器的基本方法115
6.1.1 浏览器的大小控制115
6.1.2 浏览器的前进与后退116
6.1.3 页面刷新117
6.1.4 获取页面URL地址与标题117
6.1.5 获取浏览器类型119
6.1.6 关闭当前窗口与退出浏览器119
6.2 元素的操作方法120
6.2.1 清除元素的内容121
6.2.2 提交表单121
6.2.3 获取元素的尺寸121
6.2.4 获取元素的属性与文本122
6.3 鼠标操作124
6.3.1 右击操作124
6.3.2 双击操作125
6.3.3 拖动操作125
6.3.4 鼠标指针悬停操作126
6.4 键盘操作126
6.5 定位一组元素128
6.6 等待时间131
6.6.1 强制等待131
6.6.2 隐式等待132
6.6.3 显式等待133
6.7 Frame切换136
6.8 警告框与弹出框的处理139
6.9 单选按钮、复选框和下拉列表框的处理142
6.10 检查元素是否启用或显示146
6.11 文件上传与下载147
6.11.1 文件上传147
6.11.2 文件下载153
6.12 Cookie的处理155
6.12.1 获取Cookie156
6.12.2 获取指定的Cookie159
6.12.3 添加Cookie159
6.12.4 删除Cookie160
6.12.5 接口测试中的Cookie操作163
6.13 富文本165
6.14 标签页切换166
6.15 屏幕截图167
6.16 执行JavaScript脚本169
6.16.1 JavaScript操作日期控件170
6.16.2 JavaScript处理多窗口173
6.16.3 JavaScript处理视频174
6.16.4 JavaScript控制浏览器滚动条176
6.16.5 JavaScript的其他操作179
6.17 操作画布179
第7章 单元测试框架181
7.1 单元测试简介181
7.2 单元测试框架简介181
7.3 UnitTest框架182
7.3.1 UnitTest简介182
7.3.2 UnitTest的核心要素182
7.3.3 工作流程183
7.3.4 UnitTest案例实战183
7.4 Pytest框架192
7.4.1 Pytest简介192
7.4.2 安装Pytest192
7.4.3 Pytest案例实战195
7.4.4 测试用例的运行控制197
7.4.5 在编译器中配置Pytest201
第8章 自动化测试高级应用202
8.1 HTML测试报告202
8.1.1 HTMLTestRunner简介202
8.1.2 HTMLTestRunner的优化202
8.1.3 测试报告的生成203
8.2 通过邮件发送测试报告204
8.2.1 邮件发送基础204
8.2.2 通过邮件发送测试报告实例207
第9章 Page Object设计模式214
9.1 Page Object设计模式简介214
9.2 Page Object案例实战216
9.2.1 基类的维护216
9.2.2 测试页面设计217
9.2.3 测试用例的设计218
9.3 定时运行218
第10章 自动化测试框架224
10.1 自动化框架设计与实现的前期准备224
10.1.1 INI配置文件224
10.1.2 INI配置文件的读取225
10.1.3 读取INI配置文件的封装226
10.1.4 数据驱动操作227
10.1.5 获取测试数据228
10.1.6 对数据驱动操作进行封装230
10.1.7 日志230
10.1.8 日志综合案例233
10.2 自动化框架的设计与实现235
10.2.1 自动化框架的设计235
10.2.2 自动化框架的实现236
第11章 持续集成256
11.1 持续集成简介256
11.2 Jenkins部署258
11.3 Jenkins与自动化268
第12章 Selenium Grid分布式测试276
12.1 Selenium Grid简介276
12.2 Selenium Server配置276
12.3 Selenium Server工作原理277
12.4 Selenium Grid分布式测试案例实践282
第13章 Selenium与虚拟化292
13.1 Docker简介292
13.1.1 Docker架构292
13.1.2 下载Docker293
13.2 安装Docker294
13.3 Selenium与Docker的结合302
附录310
参考文献313