Selenium3自动化测试实战——基于Python语言
  • 推荐2
  • 收藏6
  • 浏览5.0K

Selenium3自动化测试实战——基于Python语言

胡志恒 (作者) 

  • 书  号:978-7-121-36924-7
  • 出版日期:2019-06-27
  • 页  数:272
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 维护人:安娜
纸质版 ¥69.00
本书共分14章,第1章介绍了自动化测试相关的基础知识。第2章到第10章是本书的重点,从环境搭建,到WebDriver API介绍,再到单元测试框架的使用,循序渐进地介绍了自动化测试所用到的知识,最后再通过项目将这些知识串联起来。第11章详细介绍了如何使用Jenkins配置自动化测试项目。第12章到第14章介绍了移动自动化测试工具appium的使用。
本书的写作目的并不是简单地告诉读者如何使用一个自动化测试工具,而是希望读者在学习本书的内容后能够提升技术高度、拓展技术宽度,从而摆脱简单的手工测试,向高级测试工程师迈进。
本书全面介绍unittest & pytest 两大单元测试框架,通过20个例子展示WebDriver API 的使用场景,并用自动化项目串联所有知识点。
前 言
《Selenium2 自动化测试实战——基于Python 语言》出版后,我陆续收到许多反馈,有很多同学(我习惯这么称呼软件测试的同行)通过这本书学会了Selenium 自动化测试,这是我写这本书的初衷,能在你学习测试技术的道路上提供一点点帮助,我感到非常高兴!也有同学向我反馈了书中的一些错误,在此深表感谢。
随着我在自动化测试技术上的积累,我越发觉得《Selenium2 自动化测试实战——基于Python 语言》一书有许多不足之处,有些内容已经过时,有些技术需要更进一步的探讨。2017 年的时候我萌生要写第二版的想法,当时只是想对少部分内容进行修改,直接到2018年下半年才开始动笔重新整理内容。我写书的方式是一遍遍地修改书中的内容,所以,虽然不是从头到尾写一本新书,但也花费了半年之久。
前面的章节安排与《Selenium2 自动化测试实战——基于Python 语言》一书相比,变化不大,但里面的内容都有改动,主要是替换或修改了里面的例子。随着我对自动化测试的理解,更正了前一本书中的部分观点。
(1)加入了pytest 单元测试框架的使用方法,与unittest 相比,pytest 的功能更加强大,而且还有丰富的扩展库,更适合用来做自动化测试。
(2)补充了Jenkins 的使用方法。
(3)增加了3 章appium 移动自动化测试工具的介绍。随着移动互联网的发展,移动自动化测试几乎成为测试人员必备技能之一,appium 正是在Selenium 的基础上扩展而来的自动化工具。
当然,在上一本的基础上,本书也删减了部分内容。
(1)删掉了Selenium IDE 相关的内容,越来越多的测试人员使用WebDriver 编写自动化脚本,Selenium IDE 作为浏览器的自动化插件,已经很少有同学单独使用它完成大型自动化项目了。
(2)删掉了Python 多线程相关的内容。多线程的优点是可以提高自动化测试的执行速度,缺点是降低了自动化的稳定性。本书介绍了减少测试用例执行时间的其他方法。
(3)删掉了BDD 行为驱动开发相关的内容,本书更聚焦于自动化测试技术,所以,其他技术请参考专业的书进行学习。
本书在命名时也颇为纠结,本书的内容属于《Selenium2 自动化测试实战——基于Python 语言》升级版,如果命名为《Selenium2 自动化测试实战——基于Python 语言(第二版)》可以看出这种继承关系,但是书中内容是基于Selenium3 编写的,所以最终命名为《Selenium3 自动化测试实战——基于Python 语言》。
在本书出版之际,Selenium4 已在开发当中,从Selenium 官方给出的消息来看,Selenium4 对于本书的内容影响很小。
最后,由于作者水平有限,书中难免有错误之处,希望你能将错误反馈给我,我将感激不尽。感谢编辑安娜,没有她的帮助本书无法出版。感谢读者的厚爱,正是你们的鼓励
和支持,才使我有动力完成本书。
虫师
2019 年6 月

目录

第1 章 自动化测试基础 ................................................................................................. 1
1.1 分层的自动化测试 ................................................................................................ 1
1.2 适合自动化测试的项目 ........................................................................................ 3
1.3 如何学习UI 自动化测试 ...................................................................................... 4
1.4 Selenium 简介 ........................................................................................................ 4
1.5 appium 简介 ........................................................................................................... 8

第2 章 测试环境搭建 .................................................................................................. 10
2.1 安装Python .......................................................................................................... 10
2.2 安装Selenium ...................................................................................................... 12
2.3 第一个Selenium 自动化测试脚本 ..................................................................... 12
2.4 浏览器驱动 .......................................................................................................... 13

第3 章 Python 基础 ..................................................................................................... 16
3.1 Python 哲学 .......................................................................................................... 16
3.2 输出 ...................................................................................................................... 18
3.2.1 打印 .......................................................................................................... 18
3.2.2 引号与注释 .............................................................................................. 19
3.3 分支与循环 .......................................................................................................... 20
3.3.1 if 语句 ....................................................................................................... 20
3.3.2 for 语句 .................................................................................................... 21
3.4 列表、元组与字典 .............................................................................................. 22
3.4.1 列表 .......................................................................................................... 22
3.4.2 元组 .......................................................................................................... 23
3.4.3 字典 .......................................................................................................... 24
3.5 函数、类和方法 .................................................................................................. 25
3.5.1 函数 .......................................................................................................... 25
3.5.2 类和方法 .................................................................................................. 26
3.6 模组 ...................................................................................................................... 27
3.6.1 调用模块 .................................................................................................. 27
3.6.2 自定义模块 .............................................................................................. 30
3.6.3 跨目录调用文件 ...................................................................................... 31
3.6.4 编写自测代码 .......................................................................................... 33
3.7 异常 ...................................................................................................................... 34
3.7.1 认识异常 .................................................................................................. 34
3.7.2 更多异常用法 .......................................................................................... 37
3.7.3 抛出异常 .................................................................................................. 37
3.8 新手常犯的错误 .................................................................................................. 38

第4 章 WebDriver API ................................................................................................ 40
4.1 从定位元素开始 .................................................................................................. 40
4.1.1 id 定位 ...................................................................................................... 44
4.1.2 name 定位 ................................................................................................ 44
4.1.3 class 定位 ................................................................................................. 44
4.1.4 tag 定位 .................................................................................................... 44
4.1.5 link 定位 ................................................................................................... 45
4.1.6 partial link 定位 ........................................................................................ 45
4.1.7 XPath 定位 ............................................................................................... 46
4.1.8 CSS 定位 .................................................................................................. 48
4.1.9 用By 定位元素 ....................................................................................... 51
4.2 控制浏览器 .......................................................................................................... 52
4.2.1 控制浏览器窗口大小 .............................................................................. 52
4.2.2 控制浏览器后退、前进 .......................................................................... 52
4.2.3 模拟浏览器刷新 ...................................................................................... 53
4.3 WebDriver 中的常用方法 .................................................................................... 53
4.4 鼠标操作 .............................................................................................................. 55
4.5 键盘操作 .............................................................................................................. 57
4.6 获得验证信息 ...................................................................................................... 58
4.7 设置元素等待 ...................................................................................................... 59
4.7.1 显式等待 .................................................................................................. 60
4.7.2 隐式等待 .................................................................................................. 62
4.8 定位一组元素 ...................................................................................................... 63
4.9 多表单切换 .......................................................................................................... 64
4.10 多窗口切换 ........................................................................................................ 65
4.11 警告框处理 ........................................................................................................ 67
4.12 下拉框处理 ........................................................................................................ 69
4.13 上传文件 ............................................................................................................ 70
4.14 下载文件 ............................................................................................................ 72
4.15 操作Cookie ........................................................................................................ 74
4.16 调用JavaScript ................................................................................................... 75
4.17 处理HTML5 视频播放 ..................................................................................... 77
4.18 滑动解锁 ............................................................................................................ 79
4.19 窗口截图 ............................................................................................................ 82
4.20 关闭窗口 ............................................................................................................ 83

第5 章 自动化测试模型 ............................................................................................... 84
5.1 基本概念 .............................................................................................................. 84
5.2 自动化测试模型 .................................................................................................. 85
5.3 模块化与参数化 .................................................................................................. 86
5.4 读取数据文件 ...................................................................................................... 89
5.4.1 读取txt 文件 ............................................................................................ 89
5.4.2 读取CSV 文件 ........................................................................................ 91
5.4.3 读取XML 文件 ....................................................................................... 92
5.4.4 读取JSON 文件 ....................................................................................... 94

第6 章 unittest 单元测试框架 ...................................................................................... 96
6.1 认识unittest.......................................................................................................... 97
6.1.1 认识单元测试 .......................................................................................... 97
6.1.2 重要的概念 ............................................................................................ 100
6.1.3 断言方法 ................................................................................................ 103
6.1.4 测试用例的组织与discover 方法 ......................................................... 104
6.2 关于unittest 还需要知道的 ............................................................................... 108
6.2.1 测试用例的执行顺序 ............................................................................ 108
6.2.2 执行多级目录的测试用例 .................................................................... 110
6.2.3 跳过测试和预期失败 ............................................................................ 111
6.2.4 Fixtures ................................................................................................... 113
6.3 编写Web 自动化测试 ....................................................................................... 114

第7 章 unittest 扩展 ................................................................................................... 118
7.1 HTML 测试报告 ................................................................................................ 118
7.1.1 下载与安装 ............................................................................................ 118
7.1.2 生成HTML 测试报告 ........................................................................... 119
7.1.3 更易读的测试报告 ................................................................................ 121
7.1.4 测试报告文件名 .................................................................................... 123
7.2 数据驱动应用 .................................................................................................... 124
7.2.1 数据驱动 ................................................................................................ 125
7.2.2 Parameterized ......................................................................................... 128
7.2.3 DDT ........................................................................................................ 130
7.3 自动发送邮件功能 ............................................................................................ 134
7.3.1 Python 自带的发送邮件功能 ................................................................ 134
7.3.2 用yagmail 发送邮件 ............................................................................. 136
7.3.3 整合自动发送邮件功能 ........................................................................ 137

第8 章 Page Object .................................................................................................. 140
8.1 认识Page Object ................................................................................................ 140
8.2 实现Paget Object ............................................................................................... 141
8.2.1 Paget Object 简单实例 ........................................................................... 142
8.2.2 改进Paget Object 封装 .......................................................................... 143
8.3 poium 测试库 ..................................................................................................... 146
8.3.1 基本使用 ................................................................................................ 147
8.3.2 更多用法 ................................................................................................ 148

第9 章 pytest 单元测试框架 ...................................................................................... 150
9.1 pytest 简单例子 .................................................................................................. 150
9.2 pytest 的基本使用方法 ...................................................................................... 152
9.2.1 断言 ........................................................................................................ 152
9.2.2 Fixture .................................................................................................... 153
9.2.3 参数化 .................................................................................................... 157
9.2.4 运行测试 ................................................................................................ 158
9.2.5 生成测试报告 ........................................................................................ 160
9.2.6 conftest.py .............................................................................................. 162
9.3 pytest 扩展 .......................................................................................................... 163
9.3.1 pytest-html .............................................................................................. 163
9.3.2 pytest-rerunfailures ................................................................................. 164
9.3.3 pytest-parallel 扩展 ................................................................................ 165
9.4 构建Web 自动化测试项目 ............................................................................... 166
9.4.1 项目结构介绍 ........................................................................................ 166
9.4.2 主要代码实现 ........................................................................................ 168
9.4.3 测试用例的运行与测试报告 ................................................................ 173

第10 章 Selenium Grid ............................................................................................. 176
10.1 Selenium Grid 介绍 ......................................................................................... 176
10.1.1 Selenium Server 环境配置 ................................................................... 176
10.1.2 Selenium Grid 工作原理 ...................................................................... 178
10.2 Selenium Grid 应用 .......................................................................................... 180
10.2.1 Remote 实例 ......................................................................................... 181
10.2.2 Grid 执行过程 ...................................................................................... 183
10.2.3 创建远程节点 ...................................................................................... 185

第11 章 Jenkins 持续集成 ......................................................................................... 187
11.1 下载Tomcat...................................................................................................... 188
11.2 下载Jenkins ..................................................................................................... 189
11.3 安装配置Jenkins ............................................................................................. 190
11.4 Jenkins 的基本使用.......................................................................................... 192
11.4.1 创建一个构建任务 .............................................................................. 192
11.4.2 运行Python 测试 ................................................................................. 195
11.4.3 安装插件 .............................................................................................. 196
11.5 Selenium 自动化项目配置 .............................................................................. 197
11.5.1 配置Git/GitHub ................................................................................... 197
11.5.2 配置项目运行 ...................................................................................... 200
11.5.3 配置HTML 报告 ................................................................................. 201
11.5.4 配置构建统计 ...................................................................................... 204
11.5.5 配置自动发送邮件 .............................................................................. 205

第12 章 appium 的介绍与安装 .................................................................................. 210
12.1 appium 介绍 ..................................................................................................... 210
12.1.1 移动应用类型 ...................................................................................... 210
12.1.2 appium 的架构 ..................................................................................... 211
12.1.3 appium 的工作过程 ............................................................................. 214
12.2 appium 环境搭建 ............................................................................................. 215
12.2.1 Android Studio ..................................................................................... 216
12.2.2 Android 模拟器 .................................................................................... 219
12.2.3 appium Desktop .................................................................................... 222
12.2.4 Python Client ........................................................................................ 223
12.2.5 第一个appium 测试 ............................................................................ 223

第13 章 appium 基础 ................................................................................................ 226
13.1 Desired Capabilities .......................................................................................... 226
13.2 控件定位 .......................................................................................................... 228
13.2.1 id 定位 .................................................................................................. 229
13.2.2 Class Name 定位 .................................................................................. 230
13.2.3 XPath 定位 ........................................................................................... 231
13.2.4 Accessibility id 定位 ............................................................................ 232
13.2.5 Android uiautomator 定位 .................................................................... 233
13.2.6 其他定位 .............................................................................................. 234
13.3 appium 的常用API .......................................................................................... 235
13.3.1 应用操作 .............................................................................................. 235
13.3.2 上下文操作 .......................................................................................... 236
13.3.3 键盘操作 .............................................................................................. 238
13.3.4 触摸操作 .............................................................................................. 238
13.3.5 特有操作 .............................................................................................. 241
13.4 appium Desktop ................................................................................................ 243
13.4.1 准备工作 .............................................................................................. 243
13.4.2 控件定位 .............................................................................................. 245
13.4.3 脚本录制 .............................................................................................. 246

第14 章 appium 测试实例 ......................................................................................... 249
14.1 appium 应用测试 ............................................................................................. 249
14.1.1 原生应用测试 ...................................................................................... 249
14.1.2 移动Web 应用测试 ............................................................................. 250
14.1.3 混合应用测试 ...................................................................................... 252
14.2 App 测试实战 .................................................................................................. 254
14.2.1 安装App .............................................................................................. 254
14.2.2 简单的测试用例 .................................................................................. 255
14.2.3 自动化项目设计 .................................................................................. 256

本书勘误

印次
  • 页码:46  •  行数:16  •  印次: 2

    百度输入框和搜索按钮xpath绝对路径中form写成了from

    zs19910322 提交于 2022/6/18 11:22:47
    安娜 确认于 2022/9/19 10:59:33
  • 页码:54  •  行数:15  •  印次: 1

    seearch.submit()

    yuanchaoer 提交于 2019/8/11 16:52:43
    安娜 确认于 2019/9/23 15:28:45

读者评论

  • 资源压缩包有问题

    lemontree0611发表于 2022/5/19 8:14:16
  • 哈哈哈

    9527你好好发表于 2022/1/2 9:19:25
  • 有学习软件测试的加qq2108888777 一起交流

    小张杠发表于 2021/12/11 14:55:34
  • 有群可以交流吗?

    夜 空发表于 2020/11/20 9:58:52
  • 怎样购买

    tongyan发表于 2020/7/8 17:28:07

下载资源

推荐用户