描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787115515476
Selenium WebDriver 3.0是一套功能强大的Web自动化测试工具。本书旨在展示如何利用Selenium WebDriver 3.0实现自动化测试。本书有助于测试人员快速掌握Selenium WebDriver 3.0的用法,提升自动化的效率,确保测试的稳定性和可靠性。 1.本书介绍了如何搭建测试框架,如何处理失败的测试,如何根据异常判断测试出错的原因,如何巧妙地选择等待策略和超时机制,如何使用页面对象避免失效,如何使用高级用户交互API执行复杂的操作,如何使用JavaScript解决复杂的自动化问题。另外,本书还讨论Selenium WebDriver 3.0的缺点和在Docker中启动Selenium-Grid的方法等,内容十分全面。 2.本书不介绍如何编写那些厚重的测试框架,相反,本书将展示如何通过实用的附加功能来扩展Selenium,这些附加功能可以融入Selenium提供的丰富且精心设计的API中。 3.本书的译者为该领域的专家,有着深厚的技术功底,语言简练准确,有着很高的专业素养。 4.书中的每个章节都附有作者写的小贴士,与读者分享了很多作者工作中的经验和教训,让读者在自己的工作中少走弯路。 5.读者可根据书中详细指导下载相关代码资源。
本书通过大量测试代码、界面截图和操作步骤,介绍了如何使用Selenium WebDriver 3.0实现Web自动化测试。主要内容包括如何构建测试框架、如何处理失败的测试、Selenium生成的各种异常的含义、自动化测试失败的原因、页面对象的使用方法、高级用户交互API的使用方法、JavascriptExecutor类的使用方法、Selenium的缺点、如何在Selenium中使用Docker等。 本书有助于读者快速掌握并在实际工作中使用Selenium WebDriver 3.0,适合测试人员、开发人员以及相关专业人士阅读。
第 1章 如何加快测试速度 1
1.1 使开发人员易于运行测试 2
1.2 使用Apache Maven构建测试项目 2
1.3 并行执行测试 8
1.4 使用TestNG进行并行测试 11
1.5 不存在银弹 21
1.6 多浏览器支持 22
1.7 自动下载WebDriver二进制文件 30
1.8 后台模式 38
1.9 总结 43
第 2章 如何正确处理失败的测试 44
2.1 测试代码的位置 44
2.2 测试是一种实时文档 45
2.3 测试的可靠性 47
2.3.1 孤立的自动化团队 47
2.3.2 时好时坏的测试 48
2.4 增强测试的可靠性 49
2.4.1 Git 50
2.4.2 Subversion 51
2.5 关键在于持续集成 52
2.5.1 设置TeamCity 55
2.5.2 设置Jenkins 61
2.6 使用Selenium-Grid扩展功能 68
2.7 一图胜过千言万语 73
2.8 别畏惧庞大的错误栈追踪信息 79
2.9 总结 83
第3章 必知的异常 84
3.1 NoSuchElementException异常 84
3.2 NoSuchFrameException异常 86
3.3 NoSuchWindowException异常 86
3.4 ElementNotVisibleException异常 87
3.5 StaleElementReferenceException异常 87
3.6 InvalidElementStateException异常 90
3.7 UnsupportedCommandException异常 90
3.8 UnreachableBrowserException异常 91
3.9 SessionNotFoundException异常 93
3.10 WebDriverException异常—元素此时不可单击 93
3.11 NoAlertPresentException异常 94
3.12 总结 94
第4章 等待的艺术 95
4.1 页面真的准备好了吗 95
4.2 影响页面加载的外部因素 96
4.2.1 计算机规格因素 96
4.2.2 服务器规格因素 96
4.2.3 JavaScript引擎性能因素 97
4.2.4 网络因素 97
4.3 解决问题的思路 97
4.4 Selenium内置的等待机制 98
4.4.1 页面加载超时机制 99
4.4.2 脚本超时机制 99
4.4.3 隐式等待超时机制 100
4.5 使用显式等待 104
4.6 显式等待的核心——流式等待 106
4.6.1 函数 108
4.6.2 Java 8 Lambda表达式 111
4.7 总结 112
第5章 使用高效的页面对象 113
5.1 为何不断做重复的事情 113
5.2 一切始于页面对象 121
5.3 页面对象关注点的分离 123
5.4 Java PageFactory类简介 125
5.4.1 使用PageFactory注释 125
5.4.2 初始化代理对象 127
5.4.3 PageFactory类存在的问题 129
5.5 Query对象简介 130
5.6 选择PageFactory类还是Query对象 133
5.7 创建可扩展的页面对象 133
5.8 将页面对象转换为易读的DSL 137
5.9 流式页面对象 140
5.10 总结 144
第6章 使用高级用户交互API 145
6.1 API简介 146
6.2 使用API解决困难问题 147
6.2.1 使用悬停菜单 147
6.2.2 使用拖放操作 151
6.2.3 使用偏移量 155
6.2.4 使用快捷访问键 162
6.2.5 高级交互API并非绝对有效 170
6.3 总结 171
第7章 使用Selenium执行JavaScript代码 172
7.1 JavaScript执行器简介 172
7.2 JavaScript执行器的误用与滥用 175
7.3 JavaScript执行器的正确用法 176
7.4 更复杂的案例 177
7.5 JavaScript库的导入方式 184
7.6 JavaScript库的导入原则 186
7.7 如何执行异步脚本 186
7.8 自动实现用户交互 188
7.9 总结 191
第8章 实事求是 192
8.1 使用Selenium下载文件 192
8.1.1 使用场景 192
8.1.2 面临的问题 193
8.1.3 下一步的行动 193
8.1.4 真需要下载文件吗 194
8.1.5 检查链接是否有效 194
8.1.6 下载文件的办法 202
8.1.7 使用Selenium协助下载文件 204
8.2 通过Selenium无法跟踪网络流量 211
8.3 跟踪网络流量的办法 212
8.4 使用Selenium编写性能测试 222
8.5 使用Selenium进行渗透测试 225
8.6 总结 228
第9章 将Docker整合到Selenium中 229
9.1 Docker简介 229
9.2 通过Docker启动Selenium-Grid 232
9.3 在新的Selenium-Grid上运行测试 237
9.4 将Docker容器的启动作为构建的一部分 238
9.5 使用Docker Maven插件 242
9.6 使用Docker Compose 245
9.7 Docker的不足之处 247
9.8 总结 247
第 10章 展望Selenium的未来 249
10.1 机器学习—全新的追求 249
10.2 视觉验证 251
10.2.1 Applitools Eyes 253
10.2.2 引入人工智能 260
10.3 自我修复测试 262
10.4 自动编写测试 264
10.5 总结 264
附录A 如何进一步完善Selenium 265
附录B 使用JUnit 280
附录C Appium简介 288
评论
还没有评论。