从0到1搭建自动化测试框架 - 原理、实现与工程实践 评分 5.0
评分
5.0
6次评价
作者: 蔡超
出版社: 机械工业出版社
发行年月: 2021-12
装帧: 平装
版次: 2021-12第一版第一次印刷
页数: 313
定价: 99元
ISBN: 9787111695202
评价:
点个赞,支持一下吧~
作者介绍

蔡超

资深测试专家,测试开发社区VIPTEST联合创始人,中商联互联网应用工作委员会智库专家。

在测试领域从业10余年,曾先后服务于多家国际知名企业,开发过测试报告系统、测试论坛、爬虫网站,对测试框架、自动化测试有深入研究。

长期致力于软件测试的技术传播工作,著有图书《前端自动化测试框架:Cypress从入门到精通》;在拉勾教育上开设的专栏《测试开发入门与实战》曾创下24小时售卖超过10000份的纪录;软件测试类目公众号iTesting维护者。

目录

第1章 自动化测试框架基础 1

1.1 自动化测试框架概述 1

1.1.1 自动化测试框架的定义 1

1.1.2 为什么需要自动化测试框架 2

1.1.3 自动化测试框架的演化 2

1.2 自动化测试框架的通用原理 4

1.3 自动化测试框架的通用模块 5

1.3.1 基础模块 5

1.3.2 管理模块 6

1.3.3 运行模块 6

1.3.4 统计模块 6

1.4 自动化测试框架的类型 7

1.4.1 简单测试框架 7

1.4.2 X-Driven测试框架 7

1.4.3 混合型测试框架 8

1.4.4 不同类型测试框架的对比 8

1.5 自动化测试框架的设计原则 9

1.6 本章小结 10

第2章 分层自动化测试与测试框架 11

2.1 分层自动化测试概述 11

2.1.1 什么是分层自动化测试 11

2.1.2 分层自动化测试的模型 13

2.2 分层自动化测试的误区 16

2.2.1 测试一定是按顺序进行的 16

2.2.2 分层自动化测试跨层执行是反模式 17

2.2.3 分层后单元测试越多越好 17

2.3 分层自动化测试的最佳实践 17

2.3.1 测试尽量下沉 17

2.3.2 不要重复测试 18

2.3.3 合理选择分层模型 19

2.3.4 考虑用户场景 19

2.4 微服务下的自动化测试分层 20

2.4.1 微服务精要 20

2.4.2 微服务实施带来的挑战及解决之道 22

2.5 测试框架与分层自动化 24

2.6 本章小结 27

第3章 自动化测试框架初体验 28

3.1 他山之石—unittest测试框架核心原理 28

3.1.1 unittest框架概述 28

3.1.2 unittest框架运行原理 29

3.2 融会贯通—深入使用unittest测试框架 32

3.2.1 测试夹具的使用 32

3.2.2 运行指定文件夹下的测试用例 33

3.2.3 动态查找测试用例并执行 37

3.2.4 按需组装测试用例并执行 38

3.2.5 自定义测试用例查找原则 39

3.2.6 执行时忽略某些测试用例 40

3.3 unittest自动化测试框架搭建实践 41

3.3.1 搭建UI自动化测试框架 41

3.3.2 扩展unittest的测试报告 44

3.3.3 使用unittest三步生成自动化测试框架 48

3.4 扩展功能—unittest测试框架集成接口测试 49

3.4.1 Requests核心讲解 49

3.4.2 unittest测试框架集成接口测试示例 53

3.5 本章小结 56

第4章 玩转自动化测试框架 57

4.1 向经典致敬—测试框架pytest核心讲解 57

4.1.1 pytest基础用法 58

4.1.2 零代价迁移unittest测试框架 60

4.1.3 pytest核心概念 62

4.2 深入探索—pytest集成API测试 63

4.3 游刃有余—pytest核心用法 65

4.3.1 自定义测试用例查找原则 65

4.3.2 前置操作和后置操作的用法 66

4.3.3 静态挑选测试用例 68

4.3.4 动态挑选测试用例 70

4.3.5 忽略测试用例 71

4.3.6 失败测试用例自动重试 73

4.3.7 并发运行测试用例 74

4.4 深入实现—pytest数据驱动核心用法 75

4.4.1 pytest实现数据驱动 75

4.4.2 pytest数据驱动示例 77

4.5 如虎添翼—测试报告集成实践 85

4.5.1 pytest-html测试报告集成详解 85

4.5.2 Allure测试报告集成详解 86

4.6 本章小结 98

第5章 自动化测试框架最佳实践 99

5.1 元素定位策略实践 99

5.1.1 多种元素定位模型 99

5.1.2 元素定位实践 101

5.2 PageObject模型实践 106

5.2.1 PageObject模型的核心 106

5.2.2 PageObject模型应用 107

5.3 UI自动化测试和接口自动化测试的融合 109

5.3.1 融合原理 110

5.3.2 融合实践 111

5.4 测试数据应用实践 114

5.4.1 测试数据核心讲解 114

5.4.2 数据驱动模型 117

5.4.3 数据驱动实践 118

5.5 Web Service接口实践 124

5.5.1 Web Service接口调用原理 124

5.5.2 Web Service接口测试实践 125

5.6 本章小结 130

第6章 自动化测试框架与交互式命令 131

6.1 交互式命令精要 131

6.1.1 什么是交互式命令 131

6.1.2 交互式命令在测试框架中的作用 132

6.2 交互式命令在pytest中的使用 133

6.3 自主实现交互式命令 135

6.3.1 Python标准库argparse详解 135

6.3.2 交互式命令代码实践 138

6.4 测试框架集成交互式命令 139

6.5 本章小结 141

第7章 自动化测试框架与数据驱动 142

7.1 数据驱动原理概述 142

7.2 深入数据驱动原理 143

7.2.1 数据驱动DDT概述 144

7.2.2 数据驱动DDT源码解析 149

7.3 自主实现数据驱动 153

7.4 本章小结 157

第8章 自动化测试框架与测试环境 158

8.1 测试环境给自动化测试框架带来的挑战 158

8.1.1 测试环境的普遍问题 158

8.1.2 自动化测试框架如何应对测试环境变化 159

8.2 测试环境切换原理 160

8.2.1 测试环境切换原理概述 160

8.2.2 测试环境切换核心代码实践 161

8.3 测试框架集成测试环境动态切换 165

8.4 本章小结 170

第9章 自动化测试框架与测试用例 171

9.1 自动化测试用例详解 171

9.2 测试用例在测试框架中的组织形式 172

9.2.1 从功能出发进行模块化组织 172

9.2.2 从用户角色出发进行模块化组织 173

9.3 自主实现按需执行测试用例 174

9.3.1 测试用例挑选的场景 175

9.3.2 挑选测试用例的原理 175

9.4 测试用例挑选与测试框架的集成 180

9.4.1 测试框架文件结构 181

9.4.2 测试框架源码解析 182

9.4.3 执行测试 192

9.5 本章小结 194

第10章 自动化测试框架与并发运行 195

10.1 并发与全局解释器锁 195

10.2 自主实现并发 197

10.2.1 多线程并发 197

10.2.2 多进程并发 201

10.2.3 多进程下线程池并发 204

10.3 自主实现分布式并发 206

10.3.1 利用Selenium Grid实现分布式并发 206

10.3.2 分布式并发代码实践 207

10.4 测试框架集成实践 208

10.4.1 集成PageObject模型 209

10.4.2 集成并发运行 213

10.5 本章小结 217

第11章 自动化测试框架与错误处理 218

11.1 错误处理核心原理 218

11.1.1 常见的错误处理类型 218

11.1.2 错误处理机制核心讲解 220

11.2 自主实现错误处理模块 222

11.2.1 自定义错误处理 222

11.2.2 错误处理模块代码实践 223

11.3 测试框架集成错误处理 225

11.4 本章小结 230

第12章 自动化测试框架与日志系统 231

12.1 Logging精要讲解 231

12.1.1 Logging工作流 232

12.1.2 Logging核心组成 234

12.2 自主实现日志系统 235

12.2.1 简单的日志系统 235

12.2.2 多线程Logging精要 238

12.2.3 多进程Logging精要 239

12.3 测试框架集成日志系统 242

12.4 本章小结 249

第13章 自动化测试框架与测试报告 250

13.1 测试报告详解 250

13.1.1 测试报告核心模块 250

13.1.2 测试报告设计 251

13.2 自主实现测试报告 253

13.2.1 测试报告模板开发 253

13.2.2 测试报告数据收集代码实践 258

13.3 测试框架集成测试报告 262

13.4 本章小结 268

第14章 完善自动化测试框架 269

14.1 自主实现前置准备和后置清理 269

14.1.1 前置准备和后置清理的工作流程 269

14.1.2 自主代码实践 271

14.2 融合API和UI进行自动化测试 273

14.2.1 使用API或者UI进行测试 274

14.2.2 同时运行API和UI自动化测试 275

14.3 一些遗留问题 277

14.4 本章小结 278

第15章 自动化测试框架与持续集成/持续部署 279

15.1 持续集成/持续部署核心原理讲解 279

15.1.1 什么是持续集成/持续部署 279

15.1.2 持续集成/持续部署核心工作流 280

15.2 持续集成/持续部署工具详解 281

15.2.1 Jenkins流水线 282

15.2.2 Docker核心知识 283

15.2.3 GitHub WebHook要点 286

15.3 持续集成项目实战 286

15.3.1 创建GitHub项目 286

15.3.2 编写Jenkinsfile文件 287

15.3.3 Jenkins Blue Ocean流水线搭建 288

15.4 本章小结 300

第16章 测试框架发布 301

16.1 测试框架打包、发布精要 301

16.1.1 详解pip和PyPI 302

16.1.2 打包测试框架 303

16.1.3 发布到PyPI 304

16.2 测试框架发布实战 304

16.3 本章小结 313

内容介绍

这是一本从架构设计、工作原理、设计原则、代码实现、工程实践等维度全面讲解自动化测试框架的著作,既讲透了当下流行的各种自动化测试框架,又详细讲解了从0到1搭建自动化测试框架的方法和步骤,能指导读者快速实现从测试工程师向测试开发工程师的转型,完成职业生涯的飞跃。

全书共16章,分为如下几个部分:

第1部分(第1~2章):全面介绍了自动化测试框架的概念、原理、类型及通用模块,详细论述了自动化测试框架的设计原则,以及微服务测试下自动化测试框架应该如何规划和组织。

第2部分(第3~5章):着重介绍了Python语言体系下的两个经典开源框架unittest和pytest,以及如何用它们搭建自动化测试框架。

第3部分(第6~14章):是本书的重点,全面讲解了如何从0开始、不依赖任何开源框架、自主开发自动化测试框架,手把手带领读者完成自研测试框架开发。

第4部分(第15章):讲解了持续集成的核心原理和所用工具,以及如何将自研的自动化测试框架集成到企业现有的自动化测试流水线中,从而实现持续测试。

第5部分(第16章):介绍了如何将自研的自动化测试框架发布至Python官方仓库供他人下载使用。

书评

本书以“提质增效”的重要抓手——自研自动化测试框架为切入点,深入讲解自动化测试框架的设计原则、工作原理以及代码实践,值得一读。

——童庭坚 PerfMa联合创始人

本书对自动化测试框架原理进行了深入浅出的介绍和分析,带领读者从无到有,从0到1完整地去实现一个自动化测试框架,帮助读者知其然,更知其所以然。测试本身重在实践,本书就是一本优秀的实践指南。当你能自己动手,构建属于自己的自动化测试框架后,测试开发这条路就为你打开了。

——徐琨 Testin云测总裁

自动化测试一直是测试行业经久不衰的话题,也是测试人员职业技能进阶的必经之路。本书值得测试从业者仔细品读,其行业价值值得期待!

——王斌 IT东方会联合发起人、PerfMa合伙人

本书讲解了自动化测试框架的原理、设计思路和具体实现,并辅以大量工程实践代码,可以让读者有更多实操锻炼的机会,甚至拿来为己所用,构建自己的自动化测试框架。

——朱少民《全程软件测试》《敏捷测试》作者、QECon大会发起人

如果你想使用Python来开发完整的自动化测试框架,那么本书将会是一个很好的选择。本书将理论与实践相结合,由浅入深,详细讲解了开发自动化测试框架的各个维度。

——茹炳晟 腾讯T4级技术专家/腾讯研究院特约研究员/畅销书《测试工程师全栈技术进阶与实践》作者

130.6° /1306阅读/18点赞 发表评论

登录 后发表评论
认领图书 分享图书
出版社介绍

机械工业出版社成立于1950年,前身为科学技术出版社(由三联书店分立组建),1952年更名为机械工业出版社,是建国后国家设立的第一批科技图书出版机构。机械工业出版社由机械工业信息研究院作为主办单位,目前隶属于国务院国资委。