内容简介
本书由浅入深地介绍了自动化测试框架的实现原理、架构设计、工程实践。第1、2章介绍了自动化测试框架的概念、原理、类型及通用模块,详细论述了自动化测试框架的设计原则,以及微服务测试下自动化测试框架应该如何规划和组织。第3~5章着重介绍了Python语言体系下的两个经典开源框架unittest和pytest以及自动化测试框架的佳实践。第6~14章是本书的,从测试框架的入互式命令出发,到完善自动化测试框架,手把手带领读者开发测试框架。第15章介绍了持续集成的核心原理、用到的工具,并从项目实际需求的角度出发,结合GitHub、Jenkins Blue Ocean、Docker将自动化测试框架集成到自动化测试流水线中,从而实现持续测试。第16章介绍了如何将自动化测试框架发布Python官方仓库供他人下载使用。
目录
第1章 自动化测试框架基础 1.1 自动化测试框架概述 1.1.1 自动化测试框架的定义 1.1.2 为什么需要自动化测试框架 1.1.3 自动化测试框架的演化 1.2 自动化测试框架的通用原理 1.3 自动化测试框架的通用模块 1.3.1 基础模块 1.3.2 管理模块 1.3.3 运行模块 1.3.4 统计模块 1.4 自动化测试框架的类型 1.4.1 简单测试框架 1.4.2 X-Driven测试框架 1.4.3 混合型测试框架 1.4.4 不同类型测试框架的对比 1.5 自动化测试框架的设计原则 1.6 本章小结第2章 分层自动化测试与测试框架 2.1 分层自动化测试概述 2.1.1 什么是分层自动化测试 2.1.2 分层自动化测试的模型 2.2 分层自动化测试的误区 2.2.1 测试是按顺行的 2.2.2 分层自动化测试跨层执行是反模式 2.2.3 分层后单元测试越多越好 2.3 分层自动化测试的佳实践 2.3.1 测试尽量下沉 2.3.2 不要重复测试 2.3.3 合理选择分层模型 2.3.4 考虑用户场景 2.4 微服务下的自动化测试分层 2.4.1 微服务精要 2.4.2 微服务实施带来的挑战及解决之道 2.5 测试框架与分层自动化 2.6 本章小结第3章 自动化测试框架初体验 3.1 他山之石—unittest测试框架核心原理 3.1.1 unittest框架概述 3.1.2 unittest框架运行原理 3.2 融会贯通—深入使用unittest测试框架 3.2.1 测试夹具的使用 3.2.2 运行指定文件夹下的测例 3.2.3 动态查找测例并执行 3.2.4 按需组装测例并执行 3.2.5 自定义测例查找原则 3.2.6 执行时忽略某些测例 3.3 unittest自动化测试框架搭建实践 3.3.1 搭建UI自动化测试框架 3.3.2 扩展unittest的测试报告 3.3.3 使用unittest三步生成自动化测试框架 3.4 扩能—unittest测试框架集成接口测试 3.4.1 Requests核心讲解 3.4.2 unittest测试框架集成接口测试示例 3.5 本章小结第4章 玩转自动化测试框架 4.1 向经典致敬—测试框架pytest核心讲解 4.1.1 pytest基础用法 4.1.2 零代价迁移unittest测试框架 4.1.3 pytest核心概念 4.2 深入探索—pytest集成API测试 4.3 游刃有余—pytest核心用法 4.3.1 自定义测例查找原则 4.3.2 前置操作和后置操作的用法 4.3.3 静态挑选测例 4.3.4 动态挑选测例 4.3.5 忽略测例 4.3.6 失败测例自动重试 4.3.7 并发运行测例 4.4 深入实现—pytest数据驱动核心用法 4.4.1 pytest实现数据驱动 4.4.2 pytest数据驱动示例 4.5 如虎添翼—测试报告集成实践 4.5.1 pytest-html测试报告集成详解 4.5.2 Allure测试报告集成详解 4.6 本章小结第5章 自动化测试框架佳实践 5.1 元素定位策略实践 5.1.1 多种元素定位模型 5.1.2 元素定位实践 5.2 PageObject模型实践 5.2.1 PageObject模型的核心 5.2.2 PageObject模型应用 5.3 UI自动化测试和接口自动化测试的融合 5.3.1 融合原理 5.3.2 融合实践 5.4 测试数据应用实践 5.4.1 测试数据核心讲解 5.4.2 数据驱动模型 5.4.3 数据驱动实践 5.5 Web Service接口实践 5.5.1 Web Service接口调用原理 5.5.2 Web Service接口测试实践 5.6 本章小结第6章 自动化测试框架与交互式命令 6.1 交互式命令精要 6.1.1 什么是交互式命令 6.1.2 交互式命令在测试框架中的作用 6.2 交互式命令在pytest中的使用 6.3 自主实现交互式命令 6.3.1 Python标准库argparse详解 6.3.2 交互式命令代码实践 6.4 测试框架集成交互式命令 6.5 本章小结第7章 自动化测试框架与数据驱动 7.1 数据驱动原理概述 7.2 深入数据驱动原理 7.2.1 数据驱动DDT概述 7.2.2 数据驱动DDT源码解析 7.3 自主实现数据驱动 7.4 本章小结第8章 自动化测试框架与测试环境 8.1 测试环境给自动化测试框架带来的挑战 8.1.1 测试环境的普遍问题 8.1.2 自动化测试框架如何应对测试环境变化 8.2 测试环境切换原理 8.2.1 测试环境切换原理概述 8.2.2 测试环境切换核心代码实践 8.3 测试框架集成测试环境动态切换 8.4 本章小结第9章 自动化测试框架与测例 9.1 自动化测例详解 9.2 测例在测试框架中的组织形式 9.2.1 能出行模块化组织 9.2.2 从用户角色出行模块化组织 9.3 自主实现按需执行测例 9.3.1 测例挑选的场景 9.3.2 挑选测例的原理 9.4 测例挑选与测试框架的集成 9.4.1 测试框架文件结构 9.4.2 测试框架源码解析 9.4.3 执行测试 9.5 本章小结第10章 自动化测试框架与并发运行 10.1 并发与全局解释器锁 10.2 自主实现并发 10.2.1 多线程并发 10.2.2 程并发 10.2.3 程下线程池并发 10.3 自主实现分布式并发 10.3.1 利用Selenium Grid实现分布式并发 10.3.2 分布式并发代码实践 10.4 测试框架集成实践 10.4.1 集成PageObject模型 10.4.2 集成并发运行 10.5 本章小结第11章 自动化测试框架与错误处理 11.1 错误处理核心原理 11.1.1 常见的错误处理类型 11.1.2 错误处理机制核心讲解 11.2 自主实现错误处理模块 11.2.1 自定义错误处理 11.2.2 错误处理模块代码实践 11.3 测试框架集成错误处理 11.4 本章小结第12章 自动化测试框架与日志系统 12.1 Logging精要讲解 12.1.1 Logging工作流 12.1.2 Logging核心组成 12.2 自主实现日志系统 12.2.1 简单的日志系统 12.2.2 多线程Logging精要 12.2.3 程Logging精要 12.3 测试框架集成日志系统 12.4 本章小结第13章 自动化测试框架与测试报告 13.1 测试报告详解 13.1.1 测试报告核心模块 13.1.2 测试报告设计 13.2 自主实现测试报告 13.2.1 测试报告模板开发 13.2.2 测试报告数据收集代码实践 13.3 测试框架集成测试报告 13.4 本章小结第14章 完善自动化测试框架 14.1 自主实现前置准备和后置清理 14.1.1 前置准备和后置清理的工作流程 14.1.2 自主代码实践 14.2 融合API和U行自动化测试 14.2.1 使用API或者U行测试 14.2.2 同时运行API和UI自动化测试 14.3 一些问题 14.4 本章小结第15章 自动化测试框架与持续集成/持续部署 15.1 持续集成/持续部署核心原理讲解 15.1.1 什么是持续集成/持续部署 15.1.2 持续集成/持续部署核心工作流 15.2 持续集成/持续部署工具详解 15.2.1 Jenkins流水线 15.2.2 Docker核心知识 15.2.3 GitHub WebHook要点 15.3 持续集成项目实战 15.3.1 创建GitHub项目 15.3.2 编写Jenkinsfile文件 15.3.3 Jenkins Blue Ocean流水线搭建 15.4 本章小结第16章 测试框架发布 16.1 测试框架、发布精要 16.1.1 详解pip和PyPI 16.1.2 测试框架 16.1.3 发布到PyPI 16.2 测试框架发布实战 16.3 本章小结