Web自动化测试与Selenium 3.0从入门到实践
定 价:79 元
- 作者:郎珑融
- 出版时间:2020/8/1
- ISBN:9787111661535
- 出 版 社:机械工业出版社
- 中图法分类:TP311.561
- 页码:0
- 纸张:
- 版次:
- 开本:16开
本书由浅入深,结合大量实际案例,重点讲解Selenium WebDriver在企业中的应用与实践。
本书分为三部分:第壹部分为基础篇(第1、2章)主要讲解自动化基础理论、常用开发工具、安装及环境搭建;第二部分为入门篇(第3~8章),主要讲解企业常用技术Maven、Git的使用,并以丰富的实战案例讲解WebDriver的入门实例、页面的元素定位方法及常用API的使用方法;第三部分为进阶篇(第9~14章),主要讲解数据驱动测试、PageObject设计模式、自动化测试框架的搭建与持续集成、行为驱动测试框架的使用及分布式并行测试的使用。
推荐序(一)
推荐序(二)
前言
第1章 自动化测试基础准备1
1.1 自动化测试的概念1
1.2 手工测试与自动化测试的区别1
1.2.1 手工测试与自动化测试并不对立1
1.2.2 手工测试的特点2
1.2.3 自动化测试的特点2
1.2.4 自动化测试与手工测试的关系2
1.3 自动化测试中常见的误区2
1.3.1 误区一:自动化测试就是用工具录制和回放3
1.3.2 误区二:自动化测试能发现新Bug3
1.3.3 误区三:会自动化测试就是测试开发工程师了3
1.3.4 误区四:有了自动化测试就什么都不用做了3
1.4 分层自动化测试思想4
1.4.1 单元测试自动化4
1.4.2 接口测试自动化5
1.4.3 Web测试自动化5
1.5 自动化测试流程5
1.5.1 对被测系统进行调研6
1.5.2 确定使用的开发语言6
1.5.3 选择自动化测试项目6
1.5.4 申请自动化测试资源6
1.5.5 自动化测试用例筛选7
1.5.6 编写自动化测试方案7
1.5.7 自动化测试框架和脚本开发7
1.5.8 框架演示7
1.5.9 进入脚本开发阶段7
1.5.10 脚本执行阶段8
1.5.11 成果验收8
1.6 编写自动化测试用例8
1.6.1 自动化用例选择原则8
1.6.2 编写自动化用例原则8
1.6.3 编写自动化测试脚本原则9
1.7 什么样的项目适合自动化测试9
1.7.1 不适合自动化测试的情况9
1.7.2 适合自动化测试的情况9
1.8 Selenium的优势以及工作原理10
1.8.1 支持的语言、平台、浏览器10
1.8.2 Selenium的配套工具10
1.8.3 Selenium与QTP的比较10
1.8.4 Selenium的工作原理11
1.9 小结11
第2章 自动化开发环境搭建12
2.1 安装及配置Java环境12
2.1.1 下载JDK12
2.1.2 环境变量配置13
2.2 开发工具Eclipse的安装及配置16
2.2.1 下载Eclipse16
2.2.2 TestNG插件的安装及配置17
2.2.3 Maven插件的安装及配置19
2.2.4 新建一个Java工程和测试类23
2.3 开发工具IDEA的安装及配置26
2.3.1 下载和安装IDEA27
2.3.2 IDEA主题和字体设置30
2.3.3 与Eclipse操作习惯进行同步的设置32
2.3.4 IDEA必备开发插件安装33
2.3.5 IDEA常用的快捷键33
2.3.6 使用IDEA创建一个Maven项目34
2.3.7 IDEA中项目的JDK设置37
2.3.8 使用IDEA编写第一个程序38
2.4 小结39
第3章 Maven基础入门40
3.1 什么是Maven40
3.2 为什么要使用Maven40
3.3 Maven仓库的配置41
3.3.1 仓库的分类41
3.3.2 三类仓库之间的关系41
3.3.3 本地仓库的配置41
3.4 配置Maven私服地址42
3.5 pom文件说明42
3.6 在pom文件中添加依赖JAR包43
3.6.1 手动添加依赖44
3.6.2 Maven项目的目录结构45
3.7 使用Maven编译和测试46
3.7.1 编写一个主类46
3.7.2 编写一个测试类47
3.7.3 编译和测试47
3.7.4 打包和运行48
3.7.5 使用Archetype生成项目51
3.8 小结55
第4章 Git基础入门56
4.1 Git介绍56
4.1.1 什么是Git56
4.1.2 为什么要使用Git56
4.1.3 Git与SVN的区别57
4.2 Git的工作流程57
4.3 Git客户端配置57
4.3.1 在Windows上安装Git57
4.3.2 注册GitHub账号58
4.3.3 配置个人的用户名和电子邮件地址60
4.3.4 在客户端生成SSH key60
4.3.5 配置SSH key添加公钥61
4.4 Git常用操作62
4.4.1 创建一个版本库62
4.4.2 初始化本地仓库63
4.4.3 添加和提交文件63
4.4.4 将本地仓库和远程仓库相关联63
4.4.5 查看版本的操作内容64
4.4.6 版本回退操作65
4.4.7 查看工作区状态65
4.4.8 撤销修改操作66
4.4.9 删除文件操作66
4.4.10 分支操作67
4.4.11 解决冲突操作68
4.5 小结69
第5章 页面元素定位70
5.1 定位插件安装70
5.1.1 旧版本Firefox定位插件安装70
5.1.2 最新版本Firefox定位插件安装72
5.1.3 Chrome浏览器定位插件安装73
5.2 定位页面元素的方法74
5.2.1 查看页面元素75
5.2.2 常用元素定位方法75
5.2.3 XPath定位方法详解77
5.2.4 CSS定位方法详解81
5.2.5 使用jQuery定位86
5.2.6 table表格常见的定位操作89
5.3 小结92
第6章 主流测试框架TestNG的使用93
6.1 TestNG的基本介绍93
6.1.1 TestNG常见的代码93
6.1.2 TestNG怎样执行测试94
6.2 TestNG的使用95
6.2.1 快速开始95
6.2.2 注解及属性97
6.2.3 套件测试100
6.2.4 忽略测试102
6.2.5 分组测试103
6.2.6 异常测试105
6.2.7 依赖测试105
6.2.8 超时测试106
6.2.9 参数化测试108
6.2.10 多线程测试110
6.2.11 TestNG断言111
6.3 小结115
第7章 从浏览器启动开始116
7.1 启动Chrome浏览器116
7.1.1 环境准备工作116
7.1.2 下载ChromeDriver驱动118
7.1.3 启动Chrome浏览器118
7.2 启动IE浏览器119
7.2.1 下载IEDriverServer119
7.2.2 配置IE浏览器120
7.2.3 启动IE浏览器120
7.3 启动Firefox浏览器121
7.3.1 启动旧版本的Firefox浏览器121
7.3.2 启动最新版本的Firefox浏览器122
7.4 启动Edge浏览器123
7.4.1 下载Microsoft WebDriver123
7.4.2 启动Edge浏览器124
7.5 多浏览器并行测试124
7.6 小结127
第8章 WebDriver常用API使用详解128
8.1 浏览器操作128
8.1.1 访问某个网站128
8.1.2 浏览器最大化129
8.1.3 浏览器前进和后退操作129
8.1.4 浏览器刷新操作129
8.1.5 浏览器窗口操作130
8.1.6 获取页面标题130
8.1.7 获取页面源代码信息130
8.1.8 获取当前页面URL地址131
8.1.9 关闭浏览器操作131
8.2 元素操作131
8.2.1 点击操作132
8.2.2 输入操作133
8.2.3 获取页面元素文本的操作134
8.2.4 获取页面元素标签名称的操作134
8.2.5 获取页面元素属性值的操作134
8.2.6 获取页面元素尺寸的操作135
8.2.7 获取页面元素CSS样式的操作135
8.2.8 获取页面元素坐标的操作135
8.2.9 获取多个页面元素的操作136
8.3 鼠标事件和键盘事件的操作136
8.3.1 鼠标悬浮操作137
8.3.2 鼠标单击操作138
8.3.3 鼠标双击操作139
8.3.4 鼠标移动操作139
8.3.5 鼠标右击操作139
8.3.6 按住鼠标按键和释放鼠标按键的操作139
8.3.7 鼠标拖曳操作139
8.3.8 模拟键盘操作145
8.4 Selenium中常见的等待146
8.4.1 实际案例146
8.4.2 强制等待147
8.4.3 页面等待148
8.4.4 隐式等待149
8.4.5 显式等待150
8.5 Selenium中的窗口切换处理153
8.5.1 常用切换方法153
8.5.2 两个窗口切换153
8.5.3 多个窗口切换155
8.6 iframe切换处理158
8.6.1 常用切换方法158
8.6.2 使用iframe标签位置切换159
8.6.3 使用元素对象进行iframe切换159
8.6.4 使用id属性进行iframe切换159
8.6.5 使用name属性进行iframe切换160
8.6.6 iframe切换操作实例160
8.7 弹窗处理163
8.7.1 弹窗分类163
8.7.2 弹窗处理常用方法163
8.7.3 Alert弹窗处理164
8.7.4 Confirm弹窗处理165
8.7.5 Prompt弹窗处理165
8.8 单选框和复选框处理166
8.8.1 什么是单选框和复选框166
8.8.2 判断是否选中167
8.8.3 单选框处理167
8.8.4 复选框处理167
8.9 下拉框处理168
8.9.1 处理下拉框的常见方法168
8.9.2 下拉框处理169
8.10 Cookie操作170
8.10.1 获取Cookie170
8.10.2 获取Cookie个数170
8.10.3 删除所有Cookie170
8.10.4 设置Cookie171
8.10.5 通过Cookie跳过登录验证码171
8.11 调用JavaScript操作173
8.11.1 Selenium调用JS的用法174
8.11.2 使用Selenium调用JS实例174
8.12 上传文件操作175
8.12.1 普通控件上传175
8.12.2 通过Robot对象上传文件176
8.12.3 借助AutoIt完成上传文件的操作177
8.13 滚动条操作181
8.13.1 滚动条处理方法181
8.13.2 常见滚动条处理案例181
8.14 截图操作182
8.14.1 通过TakeScreenshout类实现截图182
8.14.2 通过Robot对象截图183
8.14.3 截取目标区域的图片183
8.15 录制屏幕操作184
8.15.1 安装及配置184
8.15.2 录制视频操作185
8.16 富文本操作187
8.16.1 富文本编辑器187
8.16.2 通过键盘事件实现输入操作187
8.16.3 通过进入iframe实现输入操作188
8.16.4 通过执行JS实现输入操作188
8.17 日期控件操作189
8.17.1 通过js设置日期189
8.17.2 通过iframe设置日期190
8.18 Ajax浮动框操作190
8.18.1 什么是Ajax浮动框190
8.18.2 Ajax浮动框处理191
8.19 下载文件到指定目录的操作192
8.19.1 Firefox自动下载文件到指定目录的操作192
8.19.2 Chrome自动下载文件到指定目录的操作194
8.20 使用SikuliX操作Flash网页196
8.20.1 实际操作案例196
8.20.2 安装及配置196
8.20.3 使用SikuliX操作Flash网页197
8.21 小结199
第9章 数据驱动测试201
9.1 数据驱动测试介绍201
9.2 利用DataProvider进行数据驱动测试201
9.3 利用CSV文件进行数据驱动测试203
9.3.1 创建CSV数据源文件203
9.3.2 利用CSV文件进行数据驱动测试203
9.4 利用Excel文件进行数据驱动测试204
9.4.1 创建Excel数据源文件205
9.4.2 进行数据驱动测试205
9.4.3 验证使用Excel进行数据驱动测试208
9.5 利用YAML文件进行数据驱动测试208
9.5.1 创建YAML数据源文件208
9.5.2 进行数据驱动测试209
9.5.3 验证使用YAML进行数据驱动测试210
9.6 利用MySQL数据库进行数据驱动测试210
9.6.1 数据源准备210
9.6.2 进行数据驱动测试211
9.6.3 验证使用MySQL进行数据驱动测试212
9.7 小结213
第10章 Page Object设计模式214
10.1 Page Object设计模式介绍214
10.1.1 什么是Page Object设计模式214
10.1.2 Page Object实际应用案例215
10.2 Page Factory设计模式217
10.2.1 @FindBy和@CacheLookup的用法218
10.2.2 Page Factory类的使用218
10.2.3 Page Factory模式实际应用案例218
10.3 小结222
第11章 手把手教你搭建一个自动化测试框架223
11.1 为什么要编写自动化测试框架223
11.2 框架设计思路与实现224
11.2.1 框架设计思路224
11.2.2 准备工作224
11.2.3 Log4j日志配置227
11.2.4 基础层的实现228
11.3 元素对象的管理与实现228
11.3.1 解析Excel文件229
11.3.2 By对象的封装231
11.3.3 元素对象层的再封装233
11.3.4 操作层的实现234
11.3.5 业务层的实现234
11.4 测试报告的美化235
11.5 小结239
第12章 行为驱动框架Cucumber的使用240
12.1 BDD框架之Cucumber初探240
12.1.1 什么是Cucumber240
12.1.2 何为BDD240
12.1.3 Feature介绍240
12.1.4 Step介绍241
12.1.5 Cucumber的使用241
12.1.6 如何执行244
12.2 使用Cucumber 进行参数化测试245
12.2.1 什么是参数化245
12.2.2 Cucumber的数据驱动245
12.2.3 编写测试用例文件245
12.2.4 创建业务测试代码部分246
12.3 Cucumber操作实例247
12.3.1 编写测试用例文件247
12.3.2 创建一个Step定义文件247
12.3.3 创建一个Runner类文件248
12.4 小结249
第13章 持续集成工具Jenkins的使用250
13.1 Jenkins的安装250
13.1.1 什么是Jenkins250
13.1.2 Jenkins构建过程250
13.1.3 安装及启动251
13.2 Jenkins的配置256
13.2.1 Jenkins插件的安装256
13.2.2 JDK、Maven和Git的配置257
13.2.3 Jenkins创建一个任务258
13.3 Jenkins的邮箱配置260
13.3.1 获取邮箱服务器相关信息261
13.3.2 开启QQ邮箱的SMTP服务261
13.3.3 安装Email Extension Plugin插件262
13.3.4 Jenkins邮箱的全局配置263
13.3.5 项目Job的邮箱配置264
13.4 Cucumber与Jenkins持续集成266
13.4.1 添加ExtentReports测试报告266
13.4.2 Cucumber入口类267
13.4.3 使用Jenkins持续集成268
13.5 小结271
第14章 Selenium Grid的使用273
14.1 环境搭建准备273
14.1.1 什么是Selenium Grid273
14.1.2 搭建Selenium Grid服务273
14.2 Selenium Grid实例276
14.3 小结279
参考文献280