首页>参考读物>计算机科学与技术>专用软件

从零开始学Selenium自动化测试(基于Python•视频教学版)
作者 : 李晓鹏 夜无雪 著
出版日期 : 2020-12-08
ISBN : 978-7-111-67003-2
定价 : 99.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 328
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书基于Python语言,系统地介绍Selenium 3自动化测试的相关知识体系及应用。书中的大部分知识点都匹配了相应的案例,便于读者进行实践。本书各章案例清晰易懂,并可独立运行,便于不同需求的读者学习。另外,作者专门为本书录制了约10小时的基础操作视频,帮助读者高效、直观地学习。相信通过对本书内容的系统学习,读者可以全面掌握Selenium自动化测试技能。本书共13章,涵盖的主要内容有自动化测试基础、Selenium简介、环境部署、Selenium IDE、元素定位、WebDriver API、单元测试框架、Page Object设计模式、自动化测试框架设计、持续集成、Selenium Gird及虚拟化。本书内容由浅入深,讲解循序渐进,案例丰富,适合有Python语言基础的测试入门人员阅读,也适合测试工程师和Web自动化测试工程师阅读。另外,本书还适合作为相关院校软件测试专业的教学用书。

图书特色

10小时配套教学视频+案例源代码+教学PPT
全面涵盖自动化测试的前期评估、WebDriver、单元测试、Page Object设计模式、自动化框架的设计与实现、虚拟化等知识。
不仅介绍自动化测试的相关概念和原理,还匹配了相应的案例,实操性强。
从基础和原理入手,再辅以动手实践,让前文的讲解作为后文的铺垫,容易上手。

图书前言

  笔者很早就进入了测试行业,所在团队早期的项目都是基于QTP实现的自动化场景案例及围绕QTP实现的自动化测试框架。团队一直都在使用HP公司的自动化测试工具,(从低版本QTP到高版本的UFT)。在2011年的一次内部测试技术讨论会议上,笔者与几位曾经有库巴科技及百度工作经历的同事一起进行自动化选型讨论,当时大家都提到了Selenium。
  当时团队的项目大部分属于金融(保险和银行等)类型的Web项目,加之一些自有的属于教育体系的Web产品(K12相关产品),同时由于Selenium开源且支持多种开发语言,因此从2012年开始团队将新项目的自动化测试工作逐步转型到Selenium上,当时使用的开发语言是Java。2014年前后,笔者团队负责的一个国外视频项目是基于Python 2开发的,当时团队尝试了将Selenium与Python语言进行结合来完成该项目的自动化测试。
  这样团队应用的自动化测试技术就有两种:QTP(或UFT)与Selenium。一些项目或产品还在维护与迭代阶段,由于使用的是QTP(或UFT),因此延续原有的自动化测试工具与框架;而新的Web项目则选用Selenium,结合的开发语言是Java与Python。
  随着Python语言的快速发展,尤其是Python 3的发布,它被广泛应用于包括自动化测试在内的各个领域。由于Python语言的学习成本比Java语言低很多,因此笔者所在团队中的Web自动化测试工作也逐步从Java转为Python+Selenium为主。
  随着笔者在工作中应用Selenium越来越深入,于是就有了不少的项目经验和技术积累,在此期间笔者还录制了大量基于Selenium 2的测试课程(包括Selenium自动化实践基础、UnitTest单元测试框架及B/S自动化框架)。
  受多位同行和朋友的鼓励,笔者有了将这些年在自动化测试方面的一些经验和感悟编写成书的想法,希望能将这些经验和感悟分享给想要学习测试技术的人。经过和编辑的沟通,最终确定了选题,并于2019年年初开始动笔。为了加快进度,笔者邀请了夜无雪加入写作,我们最终于2020年6月完稿。本书基于Selenium 3编写,为了使得Selenium的各个知识点通俗易懂,笔者针对不同的知识点设计了丰富的实战案例。希望读者通过阅读本书,能够快速掌握Selenium自动化测试技术。
本书特色
  1.视频教学,高效、直观
  为了帮助读者更加高效、直观地学习本书内容,笔者专门为本书录制了约10小时的基础操作视频,相信读者结合视频学习,可以达到事半功倍的效果。
  2.内容全面、系统
  本书全面涵盖Web自动化测试的相关知识,如自动化测试的前期评估、WebDriver、单元测试、Page Object设计模式、自动化框架的设计与实现等,可以让读者通过阅读一本书即可比较系统地掌握Web自动化测试的核心技术。
  3.由浅入深,循序渐进
  本书讲解时从基础和原理入手,再辅以典型实例,尽量让前文的讲解作为后文的铺垫,一步步带领读者循序渐进地学习。这样的章节安排符合读者的学习和认知规律,学习梯度比较平滑,学习效果更好。
  4.原理与实践相结合
  笔者深信,只有通过动手实践,才能加深对知识的理解,因此书中不仅介绍了自动化测试的相关概念和原理,而且还匹配了相应的测试案例,这样可以让读者学以致用,适应职场的相关要求。
  5.案例典型,步骤详细,代码翔实
  本书注重内容的实操性,主要知识点都配合实例进行讲解。书中在讲解实例和案例时都给出了详细的操作步骤和实现代码,并对关键代码做了详细的注释,便于读者理解。
  6.提供教学PPT,方便学习和教学
  笔者还为本书制作了教学PPT,可以方便相关院校的老师在教学中使用,也可以方便学生和自学人员梳理本书的知识体系。
本书内容
  本书将Python语言与Selenium相结合来实现自动化测试,需要读者具备Python语言基础,才能很好地阅读。Python语言的相关图书与学习资料很多,本书并没有设置专门的章节来讲解。如果读者还不具备Python语言基础,推荐阅读张頔编著的《Python编程从0到1》一书。这是一本很好的Python程序设计图书,对于读者掌握Python程序设计有很大的帮助。
  下面简单地介绍一下本书各章的内容。
  第1章介绍为什么要做自动化测试,常见的自动化测试工具有哪些,以及哪些项目适合开展自动化测试等。
  第2章介绍Selenium的发展历程及其学习路线。
  第3章介绍Python和Selenium的环境部署。
  第4章介绍Selenium集成开发环境与Katalon Studio的相关知识。本章所讲内容并不是自动化测试的重点,因为实际测试过程中很少通过集成开发环境来实现自动化,它只是辅助手段,但仍然需要读者了解这些内容。
  第5章介绍如何定位Web页面中的各类元素,如文本框、按钮、复选框、图片、超链接和表等。本章内容是Selenium应用基础,需要读者很好地掌握。
  第6章详细介绍WebDriver API的相关知识,如表单处理、鼠标处理及等待时间设置等。
  第7章详细介绍单元测试框架的相关知识,涵盖UnitTest与Pytest两种单元测试框架。
  第8章介绍HTML报告的生成及测试报告邮件的发送。
  第9章详细介绍如何在自动化测试中融入Page Object设计模式。该设计模式是Selenium自动化测试领域公认的较好的设计模式。
  第10章介绍自动化测试框架的一些基础技能的相关知识点,如日志、数据驱动及自动化框架的设计与实现等。
  第11章介绍自动化与持续集成(CI)的结合。
  第12章介绍如何借助Selenium Grid开展分布式测试。
  第13章介绍Selenium与虚拟化(Docker)的结合。
读者对象
* 有一定Python语言基础的自动化测试初学者;
* 初级和中级测试工程师;
* 想提升自动化测试技术的人员;
* 高校及职业院校软件测试专业的学生;
* 相关培训机构的学员。
配书资料获取
  笔者为本书提供了完整的实例源代码、基础操作教学视频及教学PPT等配套学习资料,这些资料需要读者自行下载。读者可以在机工新阅读网站(www.cmpreading.com)上搜索到本书,然后单击“资料下载”按钮,即可在本书页面上找到下载链接。
  另外,笔者还针对本书内容录制了一些拓展学习的高阶教学视频,感兴趣的读者可访问51CTO官网上笔者的课程主页(https://edu.51cto.com/lecturer/968349.html),然后查找“Selenium 3课程视频”,或者直接询问笔者,以获取视频课程地址。需要说明的是,高阶教学视频为付费课程。
致谢
  笔者自从编写并出版过一本QTP书籍后已经有多年没再写书了,产生了惰性,本次受出版社朋友的鼓励才开始规划并编写这本基于Selenium 3的书籍。在这里要感谢欧振旭编辑!由于种种原因,编写进度有些缓慢,是他一直在不断地鼓励和督促笔者,本书才得以顺利完成。另外还要感谢韩立刚老师,他对书稿的编排提供了不少帮助。最后感谢我的家人,是他们的无私付出,才让笔者能安心写作,顺利完成了书稿的编写工作。
售后支持
  限于笔者的能力,书中可能还存在一些错漏,恳请广大读者批评指正。读者可以扫描下面的二维码关注笔者的个人微信,或发送E-mail(hzbook 2017@163.com),反馈书中的疏漏和阅读时碰到的问题。
  
  李晓鹏

上架指导

计算机\软件测试

封底文字

大咖赞誉
晓鹏老师多年以来一直在测试领域深耕,具有丰富的项目经验。过去几年,他在51CTO学院录制并发布了一系列测试相关的精品课程,播放超过200万人次,深受学员们的喜爱。这部基于Python 3的Selenium 3自动化测试图书是对他多年测试经验的总结,内容丰富,讲解循序渐进,且给出了大量的实操案例,相信读者阅读后一定会收获颇丰。
——51CTO副总裁 邱文平

晓鹏老师拥有多年的一线项目实战经验,为国内众多公司提供过测试企业咨询服务。另外,他还有在高校担任软件测试教研室主任的工作经历。这使得他成为了一位既有理论功底,又有实战经验的资深测试工程师。他不仅擅长软件测试,而且对网络、数据库和Linux等技术也有深入研究。他系统地录制了大量的软件测试视频课程,广受51CTO学院学生们的好评。他培养的学生很多都在在百度、阿里巴巴、腾讯和360等一线互联网公司从事软件测试工作。他主笔编写的这本书结合案例,循序渐进地介绍了Selenium 3自动化测试技术及应用,是一本将项目开发经验和教学经验相结合的软件测试优秀读物,值得读者细读。
——畅销书作者/51CTO金牌讲师 韩立刚

多年来,李老师与时俱进,专注于对测试技能的挖掘与探索,这让他拥有了丰富的项目经验及主流测试工具的使用经验。2011年我跟随着李老师系统地学习测试,是他把我领进了测试的大门。他所教授课程的内容由浅入深,规划条理清晰,上手比较容易。本书是他多年测试经验的结晶,无论读者的基础如何,相信都能通过本书快速上手,并全面掌握Web自动化测试的相关技术。
——YY测试开发工程师 李强

李老师深耕软件测试行业多年,有丰富的项目管理经验,他的教学水平精湛,教学内容丰富,涵盖系统、网络、数据库、自动化、测试开发、性能等与测试相关的大部分技术,所教授的学生多任职于各大知名公司。本书总结了他多年的测试实战经验,内容丰富、新颖,配合实操案例,适合绝大多数测试入门人员和工程师阅读,相信阅读后定有斩获。
——生命奇点测试主管 王兆雪

图书目录

前言
第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 IDE 52
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 获取Cookie 156
6.12.2 获取指定的Cookie 159
6.12.3 添加Cookie 159
6.12.4 删除Cookie 160
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 安装Pytest 192
7.4.3 Pytest案例实战 195
7.4.4 测试用例的运行控制 197
7.4.5 在编译器中配置Pytest 201
第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 下载Docker 293
13.2 安装Docker 294
13.3 Selenium与Docker的结合 302
附录 310
参考文献 313

教学资源推荐
作者: 崔冬 黄骁
作者: [美]哈德利·威克汉姆 (Hadley Wickham)著
作者: 晓雨工作室
作者: 何宁 吴黎兵 滕冲
参考读物推荐
作者: 左超红 刘 斌
作者: 乔建军 等编著