本书基于Python语言,系统地介绍了Selenium与Appium自动化测试的相关知识及应用。
本书共10章,第1章主要讲解自动化测试的基础知识,第2~4章主要讲解Selenium WebDriver的应用与App自动化测试;第5~9章主要讲解了单元测试框架、PO模式、数据驱动、日志和持续集成;第10章通过测试一个黑马头条项目帮助初学者巩固第1~9章学习的知识,让初学者掌握自动化测试在实际工作中的运用。
本书附有配套视频、源代码、教学课件等教学资源,为了帮助初学者更好地学习本书的内容,作者还提供了在线答疑服务,希望能够帮助更多的读者。
本书适合作为高等教育本、专科院校计算机相关专业的教材,也可作为自动化测试爱好者的自学读物。
1.本书是黑马程序员软件测试系列教材;
2.本书配套有丰富的教学资源,包括教学视频、源代码、PPT、教学设计、教学大纲、课后习题及答案、题库、在线答疑等。
黑马程序员 传智播客成立于2006年,它是由中国Java培训先行者张孝祥老师发起,联合全球最大的中文IT社区CSDN、中关村软件园共同创办的一家专业教育机构。办学至今,我们一直坚守着“为千万人少走弯路而著书,为中华软件之崛起而讲课”的办学理念,坚持培养优秀软件应用工程师的宏伟目标,在累计培养的十万余名学员中,其中90%的学员均已在北、上、广等一线城市高薪就业。为了迎合软件市场的需求,我们陆续开设了Java、网页平面、PHP、.Net、iOS、C/C++、Android等9个专业方向的课程,并且未来将逐渐开设其他专业方向的课程。随着传智播客的日益壮大,除了北京总部,我们在上海、广州、武汉、成都、深圳等地也创立了直营分支机构,传智播客俨然已成为了国内最具专业口碑的IT教育机构。
目录
第 1章 自动化测试概述 1
1.1 自动化测试简介 1
1.1.1 自动化测试的概念 1
1.1.2 自动化测试的优缺点 2
1.1.3 自动化测试的分类 3
1.2 自动化测试的基本流程 4
1.3 自动化测试的常用工具 7
1.4 本章小结 8
1.5 本章习题 8
第 2章 Selenium WebDriver的基本应用 9
2.1 Selenium WebDriver简介 9
2.2 搭建Web自动化测试环境 10
2.2.1 搭建Python环境 10
2.2.2 安装Selenium 15
2.2.3 安装浏览器驱动 17
2.3 元素定位简介 19
2.4 使用浏览器定位页面元素 19
2.4.1 使用Chrome浏览器定位页面元素 20
2.4.2 使用Firefox浏览器定位页面元素 20
2.5 使用Selenium定位页面元素 21
2.5.1 单个元素的定位 21
2.5.2 一组元素的定位 25
2.6 获取元素的常用信息 27
2.6.1 获取元素尺寸 27
2.6.2 获取元素文本 29
2.6.3 获取元素属性值 29
2.7 元素的常用操作 33
2.8 鼠标的常用操作 34
2.9 键盘的常用操作 35
2.10 浏览器的常用操作 37
2.10.1 浏览器窗口的处置 37
2.10.2 浏览器的前进与后退 38
2.10.3 浏览器页面的刷新 39
2.10.4 获取浏览器页面的标题和URL 40
2.10.5 浏览器窗口的关闭 41
2.11 本章小结 42
2.12 本章习题 42
第3章 Selenium WebDriver的高级应用 44
3.1 下拉选择框操作 44
3.2 弹出框操作 47
3.3 截图操作 50
3.4 多窗口切换 53
3.5 多表单切换 54
3.6 元素等待 56
3.6.1 显式等待 56
3.6.2 隐式等待 58
3.6.3 强制等待 60
3.7 Cookie处理 60
3.8 文件上传与下载 61
3.9 执行JavaScript脚本 67
3.9.1 JavaScript脚本控制浏览器滚动条 67
3.9.2 JavaScript脚本处理日期控件 69
3.10 本章小结 70
3.11 本章习题 70
第4章 App自动化测试 72
4.1 搭建App自动化测试环境 72
4.1.1 安装JDK 1.8 72
4.1.2 下载Android SDK 74
4.1.3 创建Android模拟器 75
4.1.4 安装Appium与Appium-Python-Client库 80
4.2 App自动化测试常用工具 84
4.2.1 adb调试工具 84
4.2.2 uiautomatorviewer工具 86
4.3 驱动操作 89
4.3.1 获取手机屏幕分辨率 89
4.3.2 获取手机屏幕截图 90
4.3.3 获取手机网络类型 91
4.3.4 模拟手机键盘操作 92
4.3.5 手机通知栏操作 93
4.4 手势操作 94
4.4.1 轻敲操作 94
4.4.2 按下和抬起操作 96
4.4.3 等待操作 97
4.4.4 长按操作 98
4.4.5 移动操作 99
4.4.6 滑动和拖曳操作 101
4.5 Toast消息处理 104
4.6 本章小结 107
4.7 本章习题 107
第5章 单元测试框架 109
5.1 unittest框架 109
5.1.1 unittest框架简介 110
5.1.2 unittest的核心要素 110
5.1.3 unittest示例 112
5.1.4 unittest断言 113
5.1.5 生成HTML测试报告 114
5.2 pytest框架 116
5.2.1 pytest框架简介 116
5.2.2 pytest框架的安装方式 116
5.2.3 pytest示例 118
5.2.4 pytest断言 120
5.2.5 Fixture 122
5.2.6 pytest配置文件 123
5.2.7 测试用例的执行顺序 125
5.2.8 跳过测试用例 127
5.2.9 失败重试 128
5.2.10 参数化 129
5.2.11 生成测试报告 131
5.3 本章小结 136
5.4 本章习题 137
第6章 PO模式 138
6.1 PO模式简介 138
6.1.1 PO模式的概念 138
6.1.2 PO模式的优缺点 138
6.2 PO模式的案例实战 139
6.2.1 商城登录功能简介 139
6.2.2 创建工具类UtilsDriver 140
6.2.3 创建基类BasePage与BaseHandle 141
6.2.4 商城首页的PO模式 142
6.2.5 登录页面的PO模式 143
6.2.6 创建登录功能的测试用例 144
6.3 本章小结 146
6.4 本章习题 146
第7章 数据驱动 148
7.1 数据驱动简介 148
7.1.1 数据驱动的概念 148
7.1.2 测试数据的来源 149
7.2 文本数据驱动的实现 149
7.3 基于DDT数据驱动的实现 151
7.3.1 安装DDT 151
7.3.2 DDT读取测试数据 152
7.4 实战演练——TPshop开源商城的登录功能测试 155
7.4.1 设计测试用例 155
7.4.2 准备测试数据 156
7.4.3 获取测试数据 156
7.4.4 创建登录测试用例 157
7.5 本章小结 158
7.6 本章习题 159
第8章 日志 160
8.1 日志简介 160
8.1.1 日志的概念 160
8.1.2 日志的作用 160
8.2 logging模块中的日志 161
8.2.1 日志级别 161
8.2.2 日志级别函数 161
8.2.3 配置日志函数 163
8.2.4 日志的四大组件 166
8.3 实战演练——每分钟生成一个日志文件 169
8.4 本章小结 170
8.5 本章习题 170
第9章 持续集成 172
9.1 持续集成简介 172
9.2 Git应用 173
9.2.1 Git简介 173
9.2.2 Git安装 173
9.2.3 Git基本操作命令 174
9.2.4 Gitee运用 175
9.3 Jenkins应用 177
9.3.1 Jenkins简介 177
9.3.2 Jenkins安装 178
9.3.3 Jenkins初始化 181
9.3.4 安装Allure插件 184
9.3.5 Jenkins系统配置 186
9.3.6 Jenkins构建任务 189
9.4 本章小结 196
9.5 本章习题 196
第 10章 实战项目——黑马头条 198
10.1 项目简介 198
10.1.1 项目概述 198
10.1.2 项目测试环境 199
10.2 测试功能模块 199
10.2.1 自媒体运营系统登录功能 200
10.2.2 自媒体运营系统发布文章功能 200
10.2.3 后台管理系统登录功能 201
10.2.4 后台管理系统内容审核功能 202
10.2.5 App用户端登录功能 202
10.2.6 App用户端滑屏查看文章功能 203
10.3 测试用例设计 203
10.3.1 自媒体运营系统测试用例 203
10.3.2 后台管理系统测试用例 204
10.3.3 App用户端测试用例 205
10.4 创建工具类 205
10.5 创建基类 207
10.5.1 创建自媒体运营系统的基类 207
10.5.2 创建后台管理系统的基类 208
10.5.3 创建App用户端的基类 209
10.6 页面对象封装 209
10.6.1 自媒体运营系统页面对象的封装 210
10.6.2 后台管理系统页面对象的封装 214
10.6.3 App用户端页面对象的封装 219
10.7 测试用例脚本编写 223
10.7.1 自媒体运营系统测试用例脚本 223
10.7.2 后台管理系统测试用例脚本 224
10.7.3 App用户端测试用例脚本 225
10.8 数据驱动与日志收集 226
10.9 测试报告生成 228
10.10 项目持续集成 230
10.11 本章小结 238