第1篇 Python自动化测试基础
第1章 自动化测试概述 2
1.1 测试方式分类 2
1.2 自动化测试的概念和优点 4
1.3 为什么用Python进行自动化测试 5
1.4 接口测试和UI测试的比较 6
1.5 小结 10
第2章 Python HTTP接口编程 11
2.1 发起HTTP请求示例 11
2.1.1 HTTP请求原理解析 11
2.1.2 利用Python发起HTTP请求 13
2.1.3 利用Python处理响应对象 14
2.2 HTTP简介 14
2.2.1 HTTP状态码 15
2.2.2 利用Python处理业务码 18
2.3 GET和POST请求 19
2.3.1 HTTP请求方式 20
2.3.2 利用Python发起GET请求 20
2.3.3 利用Python发起POST请求 22
2.3.4 利用Python完成自动登录示例 24
2.4 小结 25
第3章 Selenium基础知识 26
3.1 Selenium概述 26
3.2 Selenium环境搭建 27
3.2.1 安装Selenium包 27
3.2.2 安装不同浏览器的驱动包 27
3.3 在Selenium中选择元素对象 28
3.3.1 根据id和name选择元素对象 28
3.3.2 根据link text选择元素对象 29
3.3.3 根据XPath选择元素对象 29
3.3.4 CSS选择器 30
3.4 使用Selenium完成自动登录 33
3.4.1 自动登录百度网盘 34
3.4.2 自动登录QQ空间 36
3.5 鼠标事件 36
3.6 键盘事件 39
3.7 对一组对象定位 40
3.8 对层级对象定位 43
3.9 iframe中的对象定位 46
3.10 调试方法 48
3.11 对话框处理 49
3.12 跨浏览器的窗口处理 50
3.13 分页处理 51
3.14 控制浏览器的滚动条 53
3.15 小结 54
第4章 Python模拟数据测试 55
4.1 模拟测试简介 55
4.1.1 模拟测试的定义和使用场景 55
4.1.2 安装Mock库 56
4.1.3 Mock对象简介 56
4.1.4 简单用例 57
4.2 测试留言板功能 58
4.2.1 测试新增功能 59
4.2.2 对测试失败的情况进行处理 62
4.3 Mock库的高级用法 63
4.3.1 Patch简介 63
4.3.2 Patch的简单用例 63
4.3.3 利用Patch测试购物车类 64
4.4 模拟登录 68
4.4.1 登录的完整用例 68
4.4.2 通过面向对象的方式实现登录 70
4.5 小结 70
第5章 Python爬虫测试接口 72
5.1 爬虫测试简介 72
5.1.1 爬虫测试的思路和流程 72
5.1.2 urllib库的使用 73
5.1.3 urllib 3简介 78
5.1.4 BeautifulSoup的使用 79
5.1.5 使用BeautifulSoup爬取BOSS直聘网站上的信息 82
5.1.6 正则表达式简介 90
5.1.7 封装一个强大的爬虫工具类 93
5.2 Scrapy基础 94
5.2.1 Scrapy简介 94
5.2.2 Scrapy的基本用法 96
5.2.3 Scrapy爬虫实践 99
5.3 测试商品列表页面的完整用例 102
5.4 多线程爬虫用例 106
5.5 反爬虫安全策略 108
5.5.1 tesserocr库简介 109
5.5.2 图片滑块验证码 112
5.5.3 IP限制 115
5.6 小结 116
第6章 性能测试 118
6.1 性能测试简介 118
6.2 Locust工具的使用 119
6.2.1 环境搭建 120
6.2.2 Locust快速入门 124
6.2.3 Locust和其他工具集成 129
6.3 常用的压力测试工具 130
6.3.1 轻量级http_load工具的使用 131
6.3.2 webbench工具的使用 132
6.3.3 AB工具的使用 133
6.3.4 利用Python操作AB工具 137
6.4 利用多线程实现性能提升 141
6.5 使用JMeter对Selenium自动化代码进行压力测试 146
6.6 小结 152
第7章 App自动化测试 154
7.1 App自动化测试简介 154
7.2 测试计划设计 157
7.3 Appium自动化测试框架 159
7.3.1 Appium工具简介 159
7.3.2 环境搭建 160
7.3.3 Android Studio的简单使用 165
7.3.4 自动化测试手机计算器 169
7.3.5 Appium的常用API 172
7.4 小结 175
第8章 使用pytest进行单元测试 176
8.1 单元测试简介 176
8.1.1 单元测试的重要性 177
8.1.2 单元测试框架简介 178
8.1.3 安装pytest 179
8.1.4 pytest的简单用例 180
8.2 pytest的基本用法 189
8.2.1 断言 190
8.2.2 异常处理 192
8.2.3 执行测试和参数设置 193
8.2.4 对测试结果进行分析和处理 198
8.3 pytest进阶之conftest的使用 202
8.4 其他单元测试框架 206
8.5 小结 208
第2篇 Python自动化测试实战
第9章 基于RESTful API的自动化测试案例 210
9.1 RESTful API简介 210
9.2 接口分析 211
9.3 编写配置 214
9.4 数据准备 221
9.5 新增文章接口测试代码用例 222
9.6 修改文章接口测试代码用例 225
9.7 删除文章接口测试代码用例 226
9.8 查询文章接口测试代码用例 227
9.9 API测试工具 229
9.9.1 Tavern简介 229
9.9.2 Tavern的基本用法 229
9.9.3 使用Tavern测试文章的所有接口 231
9.10 小结 232
第10章 基于Selenium的Web自动化测试案例 233
10.1 自研自动化测试框架 233
10.2 使用Selenium自动化操作网盘 242
10.2.1 基本操作封装 242
10.2.2 发送通知邮件 247
10.3 使用Lettuce进行测试 250
10.3.1 TDD和BDD简介 251
10.3.2 使用pytest-bdd进行测试 252
10.3.3 Lettuce初体验 255
10.3.4 编写Lettuce程序 258
10.3.5 Aloe的使用 260
10.4 Selenium跨浏览器测试实战 262
10.4.1 Selenium Server的安装 262
10.4.2 Selenium数据驱动测试 267
10.4.3 poium测试库 274
10.4.4 pyautoTest Web UI自动化项目 275
10.5 小结 277