《Python自动化测试入门与进阶实战》从Python自动化测试的概念讲起,逐步深入自动化测试的进阶知识,最后通过两个复杂的项目案例,重点介绍如何使用unittest+Requests+Selenium进行RESTful API和跨终端自动化测试。本书共10章,涵盖的内容有自动化测试思想;Python HTTP接口编程;Selenium基础知识;Mock模块的使用;通过Python进行爬虫测试;性能测试和压测工具实战;多线程压力测试;基于Appium的移动端测试;基于pytest的单元测试;通过编写代码测试RESTful API;Tarven相关测试接口;Selenium对百度网盘测试操作实战;lettuce语义化编程;Selenium Server的安装、部署和实战;poium和autoTest框架入门与实践。本书适合有Python编程基础而想要学习Python自动化测试技术的人员阅读,也适合对自动化测试感兴趣的相关从业人员和技术爱好者阅读。另外,本书还可以作为相关院校和培训机构的教材。
封面图
目录
- 前言
- 第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的常用API172
- 7.4 小结175
- 第8章 使用pytest进行单元测试176
- 8.1 单元测试简介176
- 8.1.1 单元测试的重要性177
- 8.1.2 单元测试框架简介178
- 8.1.3 安装pytest179
- 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