新書推薦:
《
面部填充术
》
售價:NT$
990.0
《
尼泊尔史:王权与变革
》
售價:NT$
430.0
《
战争事典085:德国人眼中的欧战胜利日:纳粹德国的最终失败
》
售價:NT$
499.0
《
步履匆匆:陈思和讲当代人文(杰出学者陈思和的人文之思、情怀之笔!)
》
售價:NT$
299.0
《
宋朝三百年
》
售價:NT$
790.0
《
礼制考古经典选读
》
售價:NT$
1340.0
《
MATLAB实用教程(第六版)
》
售價:NT$
695.0
《
中国思想的再发现(壹卷:近观系列,沟口雄三教授以其精湛的学术洞察力,旨在呈现一个全面而立体的中国思想图景)
》
售價:NT$
325.0
|
編輯推薦: |
《Selenium自动化测试之道基于Python和Java语言》既介绍了测试工具Selenium的使用,又带领读者理清实施自动化测试的思路,后者尤其重要。正所谓,测试技术或工具只是指月之手,我们追求的是月亮,是如何放心地迭代、快速地交付高品质的产品。本书内容设置与当今企业,尤其是互联网公司所需的UI自动化测试技术环环相扣,归纳总结了可能遇到的难点以及解决问题的思路。本书介绍的行为驱动开发(BDD)与持续集成工具 Jenkins,都需要团结整个研发团队,甚至是相关的业务部门,才能将这些理念发挥得更好,因此对于促进研发过程改进也具有一定的参考价值。
|
內容簡介: |
本书以Selenium的使用为主线,展现了UI自动化测试的各种实践过程,引导读者思考如何基于Selenium做好UI自动化测试。示例代码采用Python和Java,全书共8章,第1章分析讨论了自动化测试的意义,旨在使读者对自动化测试有一个较明确的认识;第2、3章详细介绍了Selenium IDE的命令、Selenium WebDriver API、不同Driver对象以及工作原理,旨在使读者对Selenium有深入的了解;第4章重点通过代码演示介绍了不同类型的测试框架;第5、6章是拓宽思路,演示了如何使用Selenium WebDriver结合JavaScript代码来操作HTML 5页面的Web Storage、Canvas对象,以及如何使用Appium处理原生App和Web App的页面对象;第7章着重演示了主流BDD框架Cucumber-JVM、Lettuce、Behave的应用,偏实战场景,探讨了BDD实施过程中需要考虑的种种问题;第8章介绍了测试人员在Jenkins使用过程中的必备知识。本书还提供了所有示例的源码与素材文件供读者练习使用,读者可从网上下载本书资源文件。 本书适用于具有编程基础,希望系统地了解UI自动化测试的开发或测试人员,以及对自动化测试感兴趣的计算机专业学生等。
|
關於作者: |
Ping测试团队主要面向支付相关产品及行业解决方案,特别是针对RESTful API和Web系统的各类测试场景。作为创业团队的一部分,Ping测试团队的工程师既认可手动测试的价值,又积极推行测试自动化,既聚焦产品,也关注流程协作,同时把提升产品质量作为己任。
|
目錄:
|
目 录
第1章 自动化测试的价值观 1
1.1 自动化测试与产品质量的关系 1
1.2 自动化并不等同于白盒测试 2
1.3 采用自动化还是手工测试 4
1.4 如何进行自动化测试 5
1.5 学习自动化测试的建议 7
1.6 小结 8
第2章 Selenium初体验 9
2.1 从一个测试脚本说起 9
2.2 Selenium家族 10
2.3 Selenium IDE 12
2.3.1 安装Selenium IDE 12
2.3.2 Selenium IDE的使用 13
2.3.3 场景演练 20
2.4 Selenium WebDriver 37
2.4.1 工作原理 37
2.4.2 元素定位 38
2.4.3 场景演练 41
2.4.4 Wait 45
2.4.5 常用的断言 46
2.5 Selenium Grid 47
2.5.1 工作原理 47
2.5.2 环境搭建 48
2.6 小结 52
2.7 练习 52
第3章 Selenium WebDriver 53
3.1 创建不同的Driver对象 53
3.1.1 主流浏览器 53
3.1.2 Headless浏览器 56
3.2 常用API概览 59
3.2.1 浏览器操作 60
3.2.2 ActionChains 61
3.2.3 Alert 61
3.2.4 By 62
3.2.5 Desired Capabilities 62
3.2.6 Keys 63
3.2.7 Wait 64
3.2.8 execute_script 64
3.2.9 switch_to 66
3.3 场景演练 66
3.3.1 弹出框 67
3.3.2 悬浮菜单 71
3.3.3 表格 75
3.3.4 iframe 79
3.3.5 上传与下载 81
3.4 可能遇到的异常 83
3.5 小结 88
3.6 练习 88
第4章 自动化框架 89
4.1 线性框架 89
4.2 模块化框架 91
4.3 数据驱动框架 94
4.4 关键字驱动框架 102
第5章 HTML 5测试 107
5.1 Web Storage 108
5.1.1 Local Storage 108
5.1.2 Session Storage 111
5.2 Application Cache 111
5.2.1 获得Application Cache
当前的状态 112
5.2.2 设置网络连接状态在线
离线 113
5.3 Canvas 114
5.4 Video 116
5.5 小结 118
5.6 练习 118
第6章 移动App测试:Appium 119
6.1 认识Appium 120
6.1.1 Appium 是什么 120
6.1.2 Appium与iOS应用 120
6.1.3 Appium与Android 应用 121
6.2 开始使用Appium 122
6.2.1 准备工作 122
6.2.2 Appium的安装与启动 123
6.3 原生App测试实践 128
6.3.1 运行ios_simple.py 128
6.3.2 运行android_simple.py 133
6.3.3 寻找练手App 136
6.4 Web App测试实践 139
6.4.1 使用Chrome开发者工具
查看Web App元素 141
6.4.2 Android Web App的联机
调试 142
6.4.3 iOS Web App 的联机
调试 144
6.5 小结 146
6.6 练习 146
第7章 BDD:行为驱动开发 147
7.1 认识BDD 148
7.1.1 BDD的由来 148
7.1.2 与TDD比较 150
7.1.3 选择合适的BDD工具 151
7.1.4 BDD实施 157
7.2 BDD工具的使用 160
7.2.1 使用Cucumber-JVM 161
7.2.2 使用Lettuce 168
7.2.3 使用Behave 175
7.3 小结 182
7.4 练习 182
第8章 Jenkins的使用 183
8.1 认识Jenkins 183
8.2 Jenkins安装与启动 185
8.3 任务定制化 188
8.3.1 同步源码 190
8.3.2 定时任务 190
8.3.3 报告 191
8.4 用户与权限 194
8.5 小结 195
8.6 练习 195
参考资料 196
|
內容試閱:
|
前 言
写一本关于Selenium自动化测试的工具书,一开始我是拒绝的。直到现在,我仍然认为工具书不足以道尽测试的奥妙。学习Selenium最好的途径是啃官方文档和源码,从最开始的 Selenium RC到WebDriver,再到移动测试Appium,Selenium一直在快速、持续地发展和变化着。等读者看到这本书的时候,很可能某些问题已经有了更好的解决方案,或者书中的代码已经不能直接运行。
而最终,我还是动笔了。因为我还有另一个观点:自动化测试不是某一家公司或者团队组织需要考虑的问题,它应该是测试同行们的必经之路,是日常测试工作的手段之一。而初学者在一开始难免会有畏难情绪,又不知如何构建知识体系。于是,将所思所得分享出来,或许可以帮助初学者尽快地度过那段破冰期。
本书的组织方式
市面上Selenium的资料很多,谈论测试自动化的也很多。但脱离了工具和技术,去谈方法论,难免让人觉得空洞;而没有方法论的东西,只谈工具和技术,难免是一叶障目,不见泰山。本书尝试在梳理技术知识的同时,讨论测试自动化的方法论。
第1章主要探讨测试价值观,阐述编者对自动化测试的基本观点和认识。
第2章是Selenium入门内容,介绍了Selenium的发展,涉及Selenium IDE、Selenium WebDriver和Selenium Grid。
第3章重点介绍了Selenium WebDriver的使用。不是简单罗列Selenium WebDriver API,还包括不同WebDriver对象、不同页面元素的处理思路。
第4章介绍了自动化测试框架的设计,包括线性、模块化、数据驱动和关键字框架4种类型。
第5章介绍了HTML 5元素的处理。Selenium还未对某些HTML 5元素的操作进行封装,因而需要利用JavaScript来解决问题。读者将在这一章开拓视角,了解更多的Selenium应用场景。
第6章介绍了移动App的测试框架Appium。基于前面几章对Selenium原理与操作的了解,读者会在这一章了解iOS与Android App自动化测试脚本的写法。
第7章介绍了行为驱动开发(BDD)模式。通过这一章,希望读者能体会到做好自动化测试不仅在于工具的掌握和框架的使用,还需要考虑测试用例的管理、手动测试用例如何与自动化脚本关联,甚至与业务部门的沟通等问题,其中几个BDD框架的示例为读者提供了解决问题的思路。
第8章介绍了持续集成工具Jenkins的使用,希望通过这一章能为读者带来测试流程方面的思考。Jenkins 可以让测试脚本的执行、报告的展示变得简单高效。
本书的内容均是由Ping的一线测试人员编写的。第2章由王红兴、周淼淼编写,第4章由徐克亮编写,其余章节由吴子腾编写。
本书的特色
本书的特色主要体现在以下3个方面:
第一,在理论观点上,本书在开篇就阐明了编者对于质量与自动化测试的关系,自动化测试与白盒测试的关系等话题的理解。其实 Selenium 等各种自动化测试工具上手并不难,但相信读者在阅读过程中并不仅仅只是想了解一种工具,而是想获得如何实施自动化测试的思路。正所谓,测试技术或工具只是指月之手,我们追求的是月亮,是如何放心地迭代,快速地交付高品质的产品。
第二,在学习视角上,本书从Selenium工作原理、测试脚本的组织方式开始讲解,再由Web自动化脚本的编写延伸到HTML 5元素、App测试对象的识别等。章节的内容设置与当今企业,尤其是互联网公司所需的UI自动化测试技术环环相扣,归纳总结了可能遇到的难点以及解决问题的思路。
第三,在技术实施上,突出了需要向团队传播质量意识与测试自动化实践相结合。本书介绍的行为驱动开发(BDD)与持续集成工具Jenkins都是需要团结整个研发团队,甚至是相关的业务部门,才能将这些理念发挥至最佳。当然,即便这些概念在组织推进过程中存在困难,测试人员也可以通过了解这些工具和技术,对研发过程改进这一话题进行更加深入的思考。
考虑到本书的目标和定位,对于没有掌握任何一门编程语言的读者而言,或许会造成阅读门槛。另外,本书涉及多类界面对象的识别和操作、多种测试脚本的写法、多个测试框架的使用。然而在实际工作中,界面操作的自动化仅仅是分层测试策略中的一部分,并不能代表全部的自动化工作。但为了便于从整体上把握和安排内容,编者还是以Web测试自动化作为本书的主要架构。这样,相比单一地通过某个系统或产品来整体介绍自动化测试方面的研究,书中各章节的内容显得在体系性上有所欠缺。
目标读者
本书主要面向的读者是具备编程基础,缺乏自动化测试经验,希望快速、系统地了解Selenium,从而进一步做好UI测试自动化的工程师。本书不仅是为测试人员而写的,它还适用于对软件测试有兴趣的在读大学生以及希望了解测试技术的开发人员。
全书综合了Selenium实践过程中的方方面面,涉及脚本编写、框架选型、开发模式等各个领域的讨论。虽然示例代码分为Java与Python两种语言,但并不会影响阅读,书中对示例代码进行了详尽的文字解读。Python 代码适用于2.7.10版本。代码下载链接:https:github.comapplewuselenium-exercises.git。
如何阅读本书
本书的前3章是全书内容的基础,需要首先阅读。在掌握了前3章之后,读者可以按照任意顺序阅读后续章节。既可以顺序浏览,概观Selenium自动化测试实践,也可以选择性地阅读自己感兴趣的章节。
我们学习任何测试工具的最终目的不在于掌握工具,而在于如何利用工具更好地为自动化测试服务。自动化测试也只是产品质量工作中的一部分。因此,不要沉迷于术,而忘却了道。在阅读过程中,读者一方面需要积极实践,掌握测试脚本的编写方法,另一方面需要积极思考,如何在自己所在的工作中合理应用起来。练习与反思,才能将本书的效果发挥至极致。
勘误和支持
由于水平有限,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。在阅读过程中遇到任何问题或错误,欢迎发送邮件至邮箱test4greenbar@163.com ,期待能够得到读者的真挚反馈。
读者还可以直接在Github的selenium-exercises项目中提交代码有关的问题,也可以通过微博(@籽藤_上海)联系编者。
致谢
首先要感谢清华大学出版社提供了这样一个创作平台。其次,感谢那些提供了宝贵建议的朋友们。虽然最终编写这本书的是Ping的测试团队,但还有很多同事和好友为本书提供了宝贵的意见。感谢李雨洪、方雷、孙兵兵、叶波光、翁旭锋、李响、左文娅、赵海林、付敏芝、史子飞提出的问题和反馈,感谢我素未谋面却志同道合的好友刘琛梅以及我的老师姜晓东在百忙之中为本书写了推荐序。
最后,我要感谢我的家人。感谢我的父母,尤其是我的母亲,培养了我的阅读和学习习惯。感谢我的公公婆婆,他们的辛勤付出让我在写书的过程中没有后顾之忧,不用担心儿子的生活起居。我还要感谢我的儿子垲兴,你的笑容是我的能量。感谢你们伴我前行。
Ping测试团队 吴子腾
上海 张江高科
2017年9月10日
|
|