1、 内 容 简 介 Selenium 是目前非常流行的一种自动化测试工具。本书基于 Python 3 语言讲述了最新的 Selenium 3的基本理论与操作,涉及各种高级应用,以及如何进行项目实战,并提供了详细的自动化平台部署步骤。本书共 14 章,分为 4 篇。第 1 篇介绍了 Selenium 概况、相关的基础知识及环境的搭建步骤;第 2 篇介绍了 Selenium 涉及的各种技术,包括前端技术、Selenium 元素定位、Selenium 常用方法及 WebDriver进阶应用;第 3 篇以携程订票系统为例,深入探讨了如何进行项目实战与优化,详细介绍了项目重构、数据驱动测试、Page Ob
2、ject 设计模式及行为驱动等相关的各种常用技术;第 4 篇介绍了平台建设相关的一些实用技术,如平台搭建维护、项目部署及运用 Docker 容器技术进行测试等。为了使读者不但能掌握 Selenium 自动化测试,而且能够迅速获得项目经验,彻底掌握并灵活运用到实际的测试项目中,本书注重理论与实践相结合,提供了大量典型的自动化测试实例,按照由浅入深、前后照应的顺序来安排内容。如果你是初学者,可以按照本书安排的先后顺序来学习,这会让你对自动化项目能更快上手;如果你是有经验的高级测试从业人员,可以根据自己的需求阅读此书,借此来夯实基础,获得更多的项目设计和部署的经验,以及对项目全局方面的认知。未经许可
3、,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据 Selenium 3+Python 3 自动化测试项目实战:从菜鸟到高手/田春成,李靖著.北京:电子工业出版社,2019.9 ISBN 978-7-121-37270-4.S .田 李 .软件工具自动检测 .TP311.561 中国版本图书馆 CIP 数据核字(2019)第 181241 号 责任编辑:董 英 印 刷:三河市良远印务有限公司 装 订:三河市良远印务有限公司 出版发行:电子工业出版社 北京市海淀区万寿路 173 信箱 邮编:100036 开 本:787980 1/16 印张:20.25
4、 字数:486 千字 版 次:2019 年 9 月第 1 版 印 次:2019 年 9 月第 1 次印刷 定 价:79.00 元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888,88258888。质量投诉请发邮件至 ,盗版侵权举报请发邮件至 。本书咨询联系方式:010-51260888-819,。推 荐 序 在这个软件技术飞速发展的时代,伴随着软件架构的不断演进,软件测试技术也随之不断完善和发展从早年完全基于 GUI 的自动化测试,到现如今前端 GUI 自动化测试和后端 API自动化测试并驾齐驱。从测试介入的时
5、机上看,软件测试正在不断“左移”,即在开发的早期阶段,测试人员就会参与其中。测试人员会从软件的可测试性需求、代码质量、接口质量等多个维度来把控软件的质量。从测试分层体系的设计上看,目前很多测试都被逐渐从前端 GUI 向后端 API 或者接口迁移。按理说,在这种情况下前端 GUI 测试的重要性会被逐渐削弱,但事实并非如此,目前依然有大量的面向终端用户的测试用例,需要在 GUI 的层面来做完整的验证,而且这些 GUI 测试的需求在将来很长时间内会长期存在,并且对于浏览器的多样性、GUI 测试的稳定性、自动化测试框架的开放性比以往任何时候都有更高的要求。为此,作为测试工程师非常有必要掌握扎实的主流
6、GUI 自动化测试技术,并且能够将其应用到实际的工程项目中。Selenium 作为开源领域最主流的 GUI 自动化测试框架,将是你深入学习掌握 GUI 自动化测试的不二选择。Selenium 从早期的基于 RemoteController 来规避同源策略的 1.0 版本,到基于WebDriver 而大获成功的 2.0 版本,再到现在能够支持更多浏览器,以及基于 Java 8 的最新 3.0版本,其自身也在不断地完善和发展。毫不夸张地说,Selenium 几乎已经成为 GUI 自动化测试事实上的行业标准。Python 语言简单易学、代码精简优雅,又有大量的第三方库支持,是学习和入门自动化测试的首
7、选开发语言。Selenium 3+Python 3 自动化测试项目实战从菜鸟到高手?IV?本书系统地讲解了基于 Python 语言使用 Selenium 3 开展 GUI 自动化测试的方方面面,既有面向初级用户的基础环境搭建方法和 Selenium 的基础知识,也有结合实际项目的大量工程实践。通过自我改进的重构过程,依次引出可重用脚本、数据驱动、页面对象模型及 BDD 等核心概念,使读者能够循序渐进地掌握 GUI 测试的核心概念和实践方法。此外,本书还介绍了自动化测试平台建设的基础知识,帮助读者拓宽视野,站在更高的层面理解自动化测试的生态体系。纵览全书,内容循序渐进,概念清晰明了,理论联系实际
8、,从易到难,知识体系全面而系统,是一本通过 Python 语言来全面掌握 Selenium 3 的好书。茹炳晟 Dell EMC 中国研发集团资深架构师 2019 年 6 月于上海 前 言 在 2007 年毕业之后,笔者从事的第一份工作与开发相关。当时所在的公司因为业务层面的需求,开始组建测试团队,机缘巧合之下,笔者负责组建测试团队的工作。从刚入行时接触的全功能测试,再到 QTP、Selenium 等自动化测试工具,时间已经过去了 8 年之久。这 8 年期间,笔者换过多份工作,接触过很多新项目,无一例外的是,笔者都会在工作中用到 Selenium。更重要的是,这么多年过去了,Selenium
9、未见颓势,反而功能越来越强大,它能做的事情也越来越多。从 Web 自动化测试到辅助爬虫工具开发,再到模拟移动端测试,都可以见到 Selenium 的身影。随着大数据和机器学习的兴起,Python 语言变得异常火热,就连小学生对此也颇感兴趣并学习,甚至部分地区的中学把 Python 设为必修课程。Python 语言语法简单且功能强大,有丰富和强大的类库。对编程能力较弱的初学者来说,Python 语言更容易学习和使用;对有编程经验的读者来说,学习 Python 语言的成本很低,可以在很短的时间内学习并使用 Python 来处理问题。本书就选择了 Python 与 Selenium 组合的方式对项目
10、进行自动化测试。笔者身边的很多朋友,一直想提高自动化测试技术,都是先抱着一本厚厚的 Python书学习,再学习自动化测试工具。学习一门语言本身比较枯燥,很多人还没学完 Python就放弃学习自动化测试工具了,而且这种学习方式很容易因为知识没有及时应用而遗忘。本书的例子虽然基于 Python 语言,但更多的是提供处理问题的思路与方法,因此,对于想学习 Selenium 自动化测试技术而不愿意尝试使用 Python 语言的读者来说,同样可以把本书作为参考资料。Selenium 3+Python 3 自动化测试项目实战从菜鸟到高手?VI?最近几年,笔者在工作之余一直在做培训。很多新手在学习测试技术的
11、过程中会遇到各种难题,经常有人咨询有没有一本偏项目实战的 Selenium 书,于是笔者便邀请好友李靖一起编写此书,希望在自动化测试学习的道路上能给读者提供一点帮助。本书的初衷是提高读者的技术学习深度与广度,从而向测试开发工程师的道路迈进。为此,在本书的最后一篇介绍了 Git、Docker 容器的使用,以及持续集成工具 Jenkins 的使用等。本书的最大特点是不需要专门学习 Python 语言,读者可以零基础入门,通过本书案例中的自动化思维,结合 Selenium 的使用学习 Python,循序渐进地学会使用 Selenium 做企业级项目。本书的知识体系 本书分为 4 篇,共 14 章。第
12、一篇 环境篇(第 13 章):主要介绍本书所涉及的基础知识、自动化测试的发展状况、Selenium IDE 的使用,以及环境搭建等基础性工作。第二篇 基础篇(第 47 章):主要介绍自动化所必需的前端知识、Python 基础、Selenium 八大定位、常用方法及高级特性。第三篇 项目篇(第 812 章):主要介绍如何从零开始做一个自动化测试项目。首先从需求分析入手并熟悉业务流程,其次编写脚本,实现整个流程的功能,最后不断地对脚本进行重构,如函数、文件、数据驱动、PageObject 设计模式、BDD(行为驱动开发)等。第四篇 平台篇(第 1314 章):主要介绍自动化测试平台,包含 Git、
13、Jenkins、多线程并发测试及 Docker 容器等技术。本书适合哪些读者 软件测试人员。在校学生,想学习自动化测试的人员。功能测试人员。想深入学习自动化测试框架的人员。前言?VII?想从事测试的开发人员。测试经理。本书作者 本书由田春成和李靖编写,刘娟参与修订了本书。读者服务 轻松注册成为博文视点社区用户(),扫码直达本书页面。下载资源:本书如提供示例代码及资源文件,均可在 下载资源 处下载。提交勘误:您对书中内容的修改意见可在 提交勘误 处提交,若被采纳,将获赠博文视点社区积分(在您购买电子书时,积分可用来抵扣相应金额)。交流互动:在页面下方 读者评论 处留下您的疑问或观点,与我们和其他
14、读者一同学习交流。页面入口:http:/ 目 录 第一篇 环境篇 第 1 章 自动化测试简介3 1.1 什么是自动化测试 3 1.2 自动化测试的分类 4 1.3 自动化测试项目的适用条件 5 1.4 自动化测试总结 5 1.5 为什么选择 Selenium 6 1.5.1 Selenium 的特性 6 1.5.2 Selenium 的发展 7 第 2 章 Selenium IDE 的使用 9 2.1 Selenium IDE 介绍9 2.1.1 Selenium IDE 的安装步骤 10 2.1.2 Selenium IDE 的功能界面与工具栏介绍 11 2.1.3 Selenium IDE
15、 脚本介绍 12 2.1.4 waitforText、assertText 和 verifyText 命令讲解 14 Selenium 3+Python 3 自动化测试项目实战从菜鸟到高手?X?2.1.5 通过实例讲解 storeTitle 命令和 echo 命令 15 2.2 从 Selenium IDE 导出脚本 15 第 3 章 Python 与 Selenium 环境搭建 18 3.1 Windows 环境下的安装 19 3.1.1 Python 安装 19 3.1.2 Selenium 安装 21 3.1.3 开发工具 IDE 安装 24 3.1.4 不同浏览器环境搭建 31 3.2
16、 Mac OS 环境下的安装 32 3.2.1 Python 安装 33 3.2.2 Selenium 安装 34 3.2.3 浏览器的驱动 35 第二篇 基础篇 第 4 章 前端技术简介 39 4.1 HTML 39 4.1.1 HTML 元素 40 4.1.2 HTML 表单 46 4.2 CSS 47 4.3 JavaScript 48 第 5 章 Selenium 元素定位 50 5.1 Python 基础知识 50 5.1.1 数字类型 51 5.1.2 字符串类型 51 5.1.3 常用的判断与循环语句 52 5.1.4 集合 54 5.1.5 列表对象 57 目录?XI?5.2 Selenium 八大定位 66 5.2.1 id 定位 66 5.2.2 name 定位 67 5.2.3 class 定位 68 5.2.4 link_text 定位 69 5.2.5 partial_link_text 定位 70 5.2.6 CSS 定位 70 5.2.7 XPath 定位 73 5.2.8 tag_name 定位 75 第 6 章 Selenium 常用方法 77 6.1