1、CMYCMMYCYCMYKSelenium3自化fy.pdf 1 2019/6/19 15:29:43内 容 简 介本书共分 14 章,第 1 章介绍了自动化测试相关的基础知识。第 2 章到第 10 章是本书的重点,从环境搭建,到 WebDriver API 介绍,再到单元测试框架的使用,循序渐进地介绍了自动化测试所用到的知识,最后再通过项目将这些知识串联起来。第 11 章详细介绍了如何使用 Jenkins 配置自动化测试项目。第 12 章到第 14 章介绍了移动自动化测试工具 appium 的使用。本书的写作目的并不是简单地告诉读者如何使用一个自动化测试工具,而是希望读者在学习本书的内容后能
2、够提升技术高度、拓展技术宽度,从而摆脱简单的手工测试,向高级测试工程师迈进。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据 Selenium3 自动化测试实战:基于 Python 语言/虫师编著.北京:电子工业出版社,2019.7 ISBN 978-7-121-36924-7.S.虫.软件工具自动检测.TP311.5 中国版本图书馆 CIP 数据核字(2019)第 122745 号 责任编辑:安 娜印 刷:北京天宇星印刷厂装 订:北京天宇星印刷厂出版发行:电子工业出版社北京市海淀区万寿路 173 信箱 邮编:100036 开 本:7879
3、80 1/16 印张:17 字数:352.3 千字 版 次:2019 年 7 月第 1 版 印 次:2019 年 7 月第 1 次印刷 定 价:69.00 元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888,88258888。质量投诉请发邮件至 ,盗版侵权举报请发邮件至 。本书咨询联系方式:010-51260888-819,。前 言Selenium2 自动化测试实战基于 Python 语言出版后,我陆续收到许多反馈,有很多同学(我习惯这么称呼软件测试的同行)通过这本书学会了 Selenium 自动化测试,这是我
4、写这本书的初衷,能在你学习测试技术的道路上提供一点点帮助,我感到非常高兴!也有同学向我反馈了书中的一些错误,在此深表感谢。随着我在自动化测试技术上的积累,我越发觉得Selenium2 自动化测试实战基于Python 语言一书有许多不足之处,有些内容已经过时,有些技术需要更进一步的探讨。2017 年的时候我萌生要写第二版的想法,当时只是想对少部分内容进行修改,直接到 2018年下半年才开始动笔重新整理内容。我写书的方式是一遍遍地修改书中的内容,所以,虽然不是从头到尾写一本新书,但也花费了半年之久。前面的章节安排与Selenium2 自动化测试实战基于 Python 语言一书相比,变化不大,但里面
5、的内容都有改动,主要是替换或修改了里面的例子。随着我对自动化测试的理解,更正了前一本书中的部分观点。(1)加入了 pytest 单元测试框架的使用方法,与 unittest 相比,pytest 的功能更加强大,而且还有丰富的扩展库,更适合用来做自动化测试。(2)补充了 Jenkins 的使用方法。(3)增加了 3 章 appium 移动自动化测试工具的介绍。随着移动互联网的发展,移动自动化测试几乎成为测试人员必备技能之一,appium 正是在 Selenium 的基础上扩展而来的自动化工具。当然,在上一本的基础上,本书也删减了部分内容。(1)删掉了 Selenium IDE 相关的内容,越来越
6、多的测试人员使用 WebDriver 编写自动化脚本,Selenium IDE 作为浏览器的自动化插件,已经很少有同学单独使用它完成大型自动化项目了。IV Selenium 3 自动化测试实战基于 Python 语言 (2)删掉了 Python 多线程相关的内容。多线程的优点是可以提高自动化测试的执行速度,缺点是降低了自动化的稳定性。本书介绍了减少测试用例执行时间的其他方法。(3)删掉了 BDD 行为驱动开发相关的内容,本书更聚焦于自动化测试技术,所以,其他技术请参考专业的书进行学习。本书在命名时也颇为纠结,本书的内容属于Selenium2 自动化测试实战基于Python 语言升级版,如果命名
7、为Selenium2 自动化测试实战基于 Python 语言(第二版)可以看出这种继承关系,但是书中内容是基于 Selenium3 编写的,所以最终命名为Selenium3 自动化测试实战基于 Python 语言。在本书出版之际,Selenium4 已在开发当中,从 Selenium 官方给出的消息来看,Selenium4 对于本书的内容影响很小。最后,由于作者水平有限,书中难免有错误之处,希望你能将错误反馈给我,我将感激不尽。感谢编辑安娜,没有她的帮助本书无法出版。感谢读者的厚爱,正是你们的鼓励和支持,才使我有动力完成本书。虫师 2019 年 6 月 读者服务 轻松注册成为博文视点社区用户(
8、),扫码直达本书页面。提交勘误:提交勘误:您对书中内容的修改意见可在【提交勘误】处提交,若被采纳,将获赠博文视点社区积分(在您购买电子书时,积分可用来抵扣相应金额)。与读者交流:与读者交流:在页面下方【读者评论】处留下您的疑问或观点,与其他读者一同学习交流。页面入口:http:/ 目 录 V 目 录 第 1 章 自动化测试基础.1 1.1 分层的自动化测试.11.2 适合自动化测试的项目.31.3 如何学习 UI 自动化测试.41.4 Selenium 简介.41.5 appium 简介.8第 2 章 测试环境搭建.10 2.1 安装 Python.102.2 安装 Selenium.122.
9、3 第一个 Selenium 自动化测试脚本.122.4 浏览器驱动.13第 3 章 Python 基础.16 3.1 Python 哲学.163.2 输出.183.2.1 打印.183.2.2 引号与注释.193.3 分支与循环.203.3.1 if 语句.203.3.2 for 语句.213.4 列表、元组与字典.223.4.1 列表.223.4.2 元组.23VI Selenium 3 自动化测试实战基于 Python 语言 3.4.3 字典.243.5 函数、类和方法.253.5.1 函数.253.5.2 类和方法.263.6 模组.273.6.1 调用模块.273.6.2 自定义模块
10、.303.6.3 跨目录调用文件.313.6.4 编写自测代码.333.7 异常.343.7.1 认识异常.343.7.2 更多异常用法.373.7.3 抛出异常.373.8 新手常犯的错误.38第 4 章 WebDriver API.40 4.1 从定位元素开始.404.1.1 id 定位.444.1.2 name 定位.444.1.3 class 定位.444.1.4 tag 定位.444.1.5 link 定位.454.1.6 partial link 定位.454.1.7 XPath 定位.464.1.8 CSS 定位.484.1.9 用 By 定位元素.514.2 控制浏览器.524
11、.2.1 控制浏览器窗口大小.524.2.2 控制浏览器后退、前进.524.2.3 模拟浏览器刷新.534.3 WebDriver 中的常用方法.534.4 鼠标操作.554.5 键盘操作.57目 录 VII 4.6 获得验证信息.584.7 设置元素等待.594.7.1 显式等待.604.7.2 隐式等待.624.8 定位一组元素.634.9 多表单切换.644.10 多窗口切换.654.11 警告框处理.674.12 下拉框处理.694.13 上传文件.704.14 下载文件.724.15 操作 Cookie.744.16 调用 JavaScript.754.17 处理 HTML5 视频播
12、放.774.18 滑动解锁.794.19 窗口截图.824.20 关闭窗口.83第 5 章 自动化测试模型.84 5.1 基本概念.845.2 自动化测试模型.855.3 模块化与参数化.865.4 读取数据文件.895.4.1 读取 txt 文件.895.4.2 读取 CSV 文件.915.4.3 读取 XML 文件.925.4.4 读取 JSON 文件.94第 6 章 unittest 单元测试框架.96 6.1 认识 unittest.976.1.1 认识单元测试.976.1.2 重要的概念.1006.1.3 断言方法.103VIII Selenium 3 自动化测试实战基于 Pytho
13、n 语言 6.1.4 测试用例的组织与 discover 方法.1046.2 关于 unittest 还需要知道的.1086.2.1 测试用例的执行顺序.1086.2.2 执行多级目录的测试用例.1106.2.3 跳过测试和预期失败.1116.2.4 Fixtures.1136.3 编写 Web 自动化测试.114第 7 章 unittest 扩展.118 7.1 HTML 测试报告.1187.1.1 下载与安装.1187.1.2 生成 HTML 测试报告.1197.1.3 更易读的测试报告.1217.1.4 测试报告文件名.1237.2 数据驱动应用.1247.2.1 数据驱动.1257.2
14、.2 Parameterized.1287.2.3 DDT.1307.3 自动发送邮件功能.1347.3.1 Python 自带的发送邮件功能.1347.3.2 用 yagmail 发送邮件.1367.3.3 整合自动发送邮件功能.137第 8 章 Page Object.140 8.1 认识 Page Object.1408.2 实现 Paget Object.1418.2.1 Paget Object 简单实例.1428.2.2 改进 Paget Object 封装.1438.3 poium 测试库.1468.3.1 基本使用.1478.3.2 更多用法.148 目 录 IX 第 9 章
15、pytest 单元测试框架.150 9.1 pytest 简单例子.1509.2 pytest 的基本使用方法.1529.2.1 断言.1529.2.2 Fixture.1539.2.3 参数化.1579.2.4 运行测试.1589.2.5 生成测试报告.1609.2.6 conftest.py.1629.3 pytest 扩展.1639.3.1 pytest-html.1639.3.2 pytest-rerunfailures.1649.3.3 pytest-parallel 扩展.1659.4 构建 Web 自动化测试项目.1669.4.1 项目结构介绍.1669.4.2 主要代码实现.1
16、689.4.3 测试用例的运行与测试报告.173第 10 章 Selenium Grid.176 10.1 Selenium Grid 介绍.17610.1.1 Selenium Server 环境配置.17610.1.2 Selenium Grid 工作原理.17810.2 Selenium Grid 应用.18010.2.1 Remote 实例.18110.2.2 Grid 执行过程.18310.2.3 创建远程节点.185第 11 章 Jenkins 持续集成.187 11.1 下载 Tomcat.18811.2 下载 Jenkins.18911.3 安装配置 Jenkins.19011.4 Jenkins 的基本使用.19211.4.1 创建一个构建任务.192X Selenium 3 自动化测试实战基于 Python 语言 11.4.2 运行 Python 测试.19511.4.3 安装插件.19611.5 Selenium 自动化项目配置.19711.5.1 配置 Git/GitHub.19711.5.2 配置项目运行.20011.5.3 配置 HTML 报告.20111.