目录
第1部分基础篇
第1章自动化测试概述
1.1自动化测试的定义
1.2自动化测试的分类
1.2.1单元自动化测试
1.2.2集成自动化测试
1.2.3系统自动化测试
1.3自动化测试的目的
1.3.1提高软件质量
1.3.2提高测试效率
1.4自动化测试实施要素
1.4.1明确目的
1.4.2制订计划
1.4.3执行落地
第2章单元自动化测试
2.1基础知识
2.1.1代码覆盖方法
2.1.2代码覆盖率
2.2使用unittest框架
2.2.1第一个unittest示例
2.2.2命令行和IDE执行
2.2.3初始化和清理操作
2.2.4详解断言
2.2.5组织测试用例
2.2.6跳过测试用例
2.2.7预期失败和非预期成功
2.2.8参数化测试
2.2.9复用已有测试代码
2.2.10使用第三方测试报告
2.3使用pytest框架
2.3.1第一个pytest示例
2.3.2命令行和IDE执行
2.3.3初始化和清理操作
2.3.4详解断言
2.3.5跳过测试用例
2.3.6预期失败和非预期成功
2.3.7参数化测试
2.3.8自定义标记
2.3.9跨模块测试数据共享
2.3.10并行执行
2.3.11兼容unittest测试用例
2.3.12使用第三方测试报告
2.4测试替身
2.4.1使用Dummy
2.4.2使用Stub
2.4.3使用Spy
2.4.4使用Mock
2.4.5使用Fake
第3章接口自动化测试
3.1基础知识
3.1.1HTTP和REST
3.1.2RPC和Dubbo
3.2查看接口的辅助工具
3.2.1浏览器开发者工具
3.2.2HTTP代理和调试工具
3.3使用Requests测试HTTP接口
3.3.1简单请求和响应
3.3.2构建请求参数
3.3.3操作Cookie
3.3.4详解request()函数
3.3.5使用会话
3.3.6上传和下载文件
3.4测试Dubbo接口
3.4.1使用Java API
3.4.2使用Spring XML
3.4.3使用Spring注解
3.4.4使用Spring Boot
3.4.5使用泛化调用
3.4.6使用Python客户端
3.5Mock测试
3.5.1HTTP接口测试的Mock
3.5.2Dubbo接口测试的Mock
第4章界面自动化测试
4.1查看元素的辅助工具
4.1.1浏览器开发者工具
4.1.2Appium Inspector
4.2使用Selenium测试Web应用
4.2.1Selenium简介
4.2.2打开浏览器
4.2.3详解浏览器操作
4.2.4定位及操作元素
4.2.5鼠标和键盘事件
4.2.6处理等待
4.2.7JavaScript对话框处理及脚本执行
4.2.8上传和下载文件
4.2.9Selenium Grid
4.2.10Selenium IDE
4.3使用Appium测试移动应用
4.3.1Appium简介
4.3.2打开待测应用程序
4.3.3详解应用程序操作
4.3.4操作待测设备
4.3.5定位及操作元素
4.3.6鼠标和手势操作
4.3.7操作移动浏览器
4.4Page Object设计模式
4.4.1两层建模
4.4.2三层建模
第2部分进阶篇
第5章扩展现有自动化测试框架
5.1开发pytest插件
5.1.1使用pytest Hook
5.1.2开发本地插件
5.1.3开发可安装的插件
5.2使用Requests Hook
5.3实现Selenium等待条件和事件监听器
5.3.1实现Selenium等待条件
5.3.2实现Selenium事件监听器
第6章开发全新自动化测试框架
6.1整体设计
6.2实现测试用例模块
6.3实现测试任务模块
6.3.1测试用例过滤器
6.3.2测试任务
6.4实现测试记录器模块
6.4.1实现辅助类
6.4.2记录测试结果
6.4.3统计测试结果
6.4.4生成测试报告
6.5实现测试执行器模块
6.6实现高级功能
6.6.1参数化测试
6.6.2多线程测试
6.6.3终止策略
6.6.4重试策略
6.6.5超时时间
6.6.6异常断言
6.7实现框架的执行入口
6.7.1IDE执行入口
6.7.2命令行执行入口
6.8测试
6.8.1测试用例的测试
6.8.2测试任务的测试
6.8.3测试记录器的测试
6.8.4测试执行器的测试
6.8.5异常断言的测试
6.8.6执行入口的测试
6.9编写文档
6.9.1用户指南
6.9.2变更记录
6.9.3开源许可证书
6.10打包和发布
6.10.1打包
6.10.2发布
6.11优化建议
第3部分实战篇
第7章项目实战
7.1搭建基础框架
7.1.1准备
7.1.2编写简单测试用例
7.1.3如何优化测试用例
7.2使用模块化
7.2.1将公共部分封装为函数
7.2.2参数化可变代码
7.2.3将公共部分存放到独立模块
7.2.4进一步优化
7.3使用函数库
7.3.1搭建Python私有仓库
7.3.2发布函数库
7.3.3使用函数库
7.4使用数据驱动测试
7.4.1使用CSV作为数据源
7.4.2使用Excel作为数据源
7.4.3使用Properties作为数据源
7.4.4使用YAML作为数据源
7.4.5使用数据库作为数据源
7.5使用关键字驱动测试
7.5.1关键字简介
7.5.2安装Robot Framework
7.5.3Robot Framework关键字库
7.5.4使用标准关键字库
7.5.5使用外部关键字库
7.6使用第三方断言函数库
7.6.1使用PyHamcrest断言函数库
7.6.2使用assertpy断言函数库
第8章持续集成、持续交付和持续部署
8.1持续集成、持续交付和持续部署简介
8.2使用Jenkins实现持续集成、持续交付和持续部署
8.2.1Blue Ocean简介
8.2.2使用流水线
8.2.3使用多分支流水线
8.3其他常用实践
8.3.1邮件通知
8.3.2多节点构建
8.3.3集成第三方测试报告
附录搭建环境