- 测试用例复用困难:通过模块化平台设计解决测试用例复用能力差的问题,提高测试效率。
- 测试工具扩展性不足:介绍可扩展的测试资源管理和配置模块设计,解决工具扩展能力弱的问题。
- CI/CD集成困难:讲解如何将自动化测试平台集成到CI/CD工作流程中,实现持续测试。
- 测试报告不清晰:设计树形测试步骤和分类日志管理,解决测试结果难以阅读的问题。
- 平台部署与学习成本高:提供快速部署方案和低学习成本的平台设计,降低团队上手门槛。
- 自动化测试工程师:希望设计或优化自动化测试平台,提升测试效率和质量。
- 测试开发工程师:需要掌握测试平台的设计与开发技能,构建高效的测试基础设施。
- DevOps工程师:需要将自动化测试平台集成到CI/CD流程中,实现持续交付。
- 技术管理者:了解自动化测试平台的设计思路,为团队技术选型和建设提供参考。
- Python开发者:对测试平台开发感兴趣,希望通过实战项目提升Python工程能力。
- 先通读第1-2章:了解自动化测试面临的挑战和平台基本设计思路,建立全局认知。
- 重点研读第3-6章:资源管理、配置管理、报告日志和测试引擎是平台核心模块,需深入理解。
- 动手实践代码:书中提供Python代码实现,建议边读边动手编写和调试。
- 关注CI/CD集成章节:结合实际工作场景,思考如何将测试平台融入现有流程。
- 参考案例部分:学习大型企业的实践经验,为自身平台建设提供参考。
- 掌握平台设计方法:学会模块化、分层设计、前后端分离等测试平台设计方法。
- 构建自动化测试平台:能够从零设计和开发一套可扩展的自动化测试平台。
- 提升测试用例复用能力:掌握面向对象设计思想,大幅提升测试用例的复用和扩展能力。
- 集成CI/CD流程:能够将自动化测试平台与CI/CD流程无缝集成,实现持续测试。
- 获得实战代码经验:通过Python代码实现,积累测试平台开发的实战经验。
📖 书籍简介
| 商品基本信息,请以下列介绍为准 | |
| 图书名称: | 高效自动化测试平台 设计与开发实战 |
| 作者: | 徐德晨 |
| 定价: | 106.00 |
| ISBN号: | 9787121390425 |
| 出版社: | 电子工业出版社 |
| 内容简介 | |
| 本书从软件自动化测试的发展历史和趋势出发,作者总结了当前软件自动化测试的需求和挑战,比如:1. 测试对象功能复杂化,被测对象的功能越来越多,越来越全面。2. 迭代快速化,软件从设计到交付的时间周期越来越短。3. 测试环境规模不断增加,被测试对象的系统规模越来越庞大。在此基础上,本书以实战的方法,深入浅出地分析和介绍了一种模块化平台的设计方案来应对这些挑战,逐一介绍了每个模块的设计思路。这种自动化测试平台具有良好的测试用例的复用能力和功能的扩展能力,并且对于测试工程师用户来说有比较低的学习成本,能快速对测试用例开发进行上手。同时,该平台的设计能够很好的解决部署和执行问题,在CI/CD并且融入了数据驱动,事件驱动等先进的设计思想和理念。本书还结合了当下软件企业比较重视的CI/CD流程,云端部署等热门话题, 介绍了如何将自动化测试平台集成到CI/CD的工作流程以及如何将测试平台进行云部署的转变。*后介绍了几个大型企业的经典案例。除了设计思路和方案以外,本书会给出部分的代码实现(主要适用面向对象脚本语言Python)。 |
| 目录 | |
第1章 软件自动化测试面临的挑战 1 1.1 软件测试各个阶段的自动化需求 2 1.1.1 单元测试 2 1.1.2 功能测试 4 1.1.3 回归测试 6 1.1.4 可用性测试及冒烟测试 6 1.1.5 系统测试 7 1.2 软件自动化测试工具的挑战 8 1.2.1 测试用例的复用能力 8 1.2.2 测试用例的扩展能力 9 1.2.3 测试工具的扩展能力 10 1.2.4 灵活的测试调度能力 11 1.2.5 测试结果和报告 12 1.2.6 与CI/CD的集成能力 14 1.2.7 快速部署和较低的学习成本 15 1.3 基于面向对象的平台化设计思想 16 1.3.1 面向对象设计思想 16 1.3.2 模块化设计 25 1.4 总结 27 ? 第2章 高效测试平台的基本设计 28 2.1 编程语言和开源框架 29 2.1.1 编程语言的选择 29 2.1.2 从零开发还是使用现有框架 30 2.1.3 跨越平台和编程语言的限制 31 2.2 模块化测试平台的设计方法 33 2.2.1 什么是模块化 33 2.2.2 核心功能和业务分离 36 2.2.3 分层设计思想 36 2.2.4 前后端分离 38 2.3 自动化测试平台的基本设计 41 2.3.1 自动化测试平台的基本模块 41 2.3.2 测试资源管理模块 42 2.3.3 测试配置管理模块 43 2.3.4 测试用例执行模块 44 2.3.5 测试报告和日志模块 45 2.4 总结 46 第3章 可扩展的测试资源管理模块 47 3.1 测试资源 48 3.1.1 测试资源和抽象 49 3.1.2 测试资源的序列化和反序列化 53 3.1.3 测试资源池 61 3.2 资源选择器 67 3.2.1 设计资源选择器的目的 68 3.2.2 资源限制条件机制 71 3.2.3 资源获取路由 81 3.3 从资源类对象获取资源配置接口 87 3.3.1 资源类对象和配置接口分离 87 3.3.2 配置接口实例化方法的注册 89 3.4 总结 93 ? 第4章 模块化的测试配置 94 4.1 测试配置基本分类 96 4.1.1 静态配置 96 4.1.2 动态配置 97 4.1.3 带有逻辑功能的配置 99 4.2 可扩展的静态配置 100 4.2.1 基本配置的设计 100 4.2.2 配置的注册方法 103 4.3 灵活的动态配置 106 4.3.1 类中类 107 4.3.2 通过装饰器来初始化配置 108 4.4 带逻辑功能的配置 109 4.4.1 带逻辑功能配置模块的使用场景 109 4.4.2 逻辑功能模块的实现 111 4.4.3 逻辑配置模块管理器 114 4.5 总结 117 第5章 友善的测试报告和日志 119 5.1 我们需要什么样的测试结果 120 5.1.1 测试步骤和日志分离 121 5.1.2 仪表板 122 5.1.3 清晰的测试步骤 122 5.1.4 分类的运行日志 124 5.2 树形显示的测试步骤 124 5.2.1 树形测试步骤输出的实现 125 5.2.2 巧用Python的with语法 138 5.3 日志管理 148 5.3.1 日志注册 148 5.3.2 平台模块的日志注册 150 5.3.3 测试用例的日志注册 155 5.4 总结 158 第6章 灵活配置的测试引擎 159 6.1 测试引擎的职责 160 6.1.1 测试用例的装载 161 6.1.2 测试列表和配置需求满足分析 162 6.1.3 测试资源获取 162 6.1.4 配置的装载 163 6.1.5 测试用例的执行及生命周期管理 163 6.2 测试用例 165 6.2.1 四步测试 165 6.2.2 测试用例的属性 167 6.2.3 测试用例参数 168 6.2.4 测试用例的优先级及依赖关系 171 6.2.5 测试列表 174 6.3 测试引擎的初始化设计 178 6.3.1 静态配置的读取和实例化 179 6.3.2 测试资源的获取 180 6.3.3 测试列表及测试用例的装载 181 6.4 测试用例的生命周期管理及运行 184 6.4.1 测试用例的执行流程 184 6.4.2 测试用例的流程控制设计 185 6.4.3 测试用例的异常管理 191 6.4.4 测试用例的中断控制 194 6.4.5 测试引擎的运行 195 6.5 总结 197 第7章 友善的管理平台 199 7.1 命令行模式 200 7.1.1 命令行模式的优缺点 201 7.1.2 展示层设计 202 7.1.3 命令行功能的实现 205 7.1.4 执行测试用例 207 7.2 RESTful API的管理模式 210 7.2.1 RESTful API的特点 210 7.2.2 测试平台RESTful API的设计实现 211 7.2.3 GUI界面管理模式 219 7.3 测试用例的管理 219 7.3.1 测试用例的自动发现 220 7.3.2 测试用例的进一步管理 227 7.4 平台的安装及发布 228 7.4.1 平台核心功能的发布 229 7.4.2 测试用例及业务代码管理 236 7.5 总结 241 第8章 测试数据及数据驱动测试 242 8.1 测试数据的准备与生成 243 8.1.1 常见的测试数据生成方法 243 8.1.2 测试数据生成的时机 248 8.1.3 统一测试数据平台 252 8.2 数据驱动的测试用例 259 8.2.1 测试过程复用和数据替换 260 8.2.2 适宜的数据驱动策略 265 8.3 测试用例参数传递设计 266 8.3.1 测试数据的传递 266 8.3.2 数据驱动装饰器的实现 268 8.3.3 测试数据的变量化 271 8.4 总结 277 第9章 代码自动生成 278 9.1 重复劳动的封装作业 279 9.1.1 协议验证测试和数据报文分析 280 9.1.2 RESTful API测试 285 9.2 文档和元数据驱动 287 9.2.1 元数据 288 9.2.2 手工开发代码的实现 296 9.3 代码自动生成的实现 302 9.3.1 自动生成代码的工具 302 9.3.2 中间对象的定义 311 9.3.3 代码的自动生成 326 9.4 测试用例的自动生成 337 9.4.1 技术代码和业务数据的分离 337 9.4.2 API接口测试 340 9.5 总结 342 第10章 测试工具和设备的驱动设计 343 10.1 命令行工具 344 10.1.1 命令行接口类的实现 345 10.1.2 接口的实例化 351 10.2 Selenium的二次封装 353 10.2.1 浏览器的二次封装 353 10.2.2 页面元素封装 358 10.3 技术代码下沉和测试业务封装 364 10.3.1 网络设备流量测试的典型场景 365 10.3.2 网络设备流量测试过程的抽象 367 10.4 总结 372 第11章 事件驱动测试模式 373 11.1 传统测试用例的挑战 374 11.1.1 固定的测试步骤和覆盖率 374 11.1.2 客户问题的复现 375 11.1.3 大系统和长时间的测试挑战 376 11.2 何为事件驱动 377 11.2.1 事件驱动的特点 377 11.2.2 事件驱动的一些问题 381 11.3 事件驱动引擎的设计 385 11.3.1 事件驱动的基本流程 385 11.3.2 事件的设计和实现 386 11.3.3 与现有平台相结合 399 11.4 总结 400 第12章 微服务化的测试平台 401 12.1 软件架构的演进 402 12.1.1 Monolith单体架构 402 12.1.2 分布式架构和SOA 403 12.1.3 微服务 404 12.2 微服务的基本形态 405 12.3 测试平台的微服务化 407 12.3.1 统一的测试平台 407 12.3.2 服务边界 409 12.3.3 基本服务的设计 411 12.3.4 消息队列 414 12.4 总结 414 第13章 实战成功案例介绍 416 13.1 四两拨千斤的自动化测试平台 416 13.1.1 初期阶段—产品测试模式和自动化测试平台的建立 417 13.1.2 扩展阶段—更智能的测试平台 421 13.1.3 推广阶段—公司的明星级测试平台 423 13.2 全球大型电商的自动化测试中台 424 13.2.1 测试中台的全局架构 424 13.2.2 统一测试执行服务 426 13.2.3 统一测试数据服务 426 13.2.4 统一测试执行环境服务 427 13.2.5 被测系统部署服务 429 13.2.6 测试报告服务 429 13.2.7 全局测试配置服务 430 13.2.8 GUI自动化测试服务 432 13.2.9 API自动化测试服务 432 13.2.10 统一Mock服务 433 13.2.11 工程效率工具链仓库 433 |
| 作者简介 | |
| 徐德晨 毕业于中国科技大学自动化系软件工程专业,硕士。先后任职于智邦科技、Tellabs、Broadcom、Cisco,从事自动化测试平台开发工作,在Cisco任职期间申请通过三项专利,现在Dell EMC负责自动化测试平台的设计与开发。茹炳晟 业界知名的实战派软件质量和研发工程效能专家,测试基础架构的布道者,腾讯云*具价值的专家TVP,阿里云*具价值的专家MVP,中国商业联合会互联网应用技术委员会的智库专家,国内外**技术峰会的技术委员会成员和专题出品人。 |
📑 章节目录
- 软件自动化测试面临的挑战:测试阶段需求与工具挑战分析
- 高效测试平台的基本设计:编程语言选择与模块化设计方法
- 可扩展的测试资源管理模块:资源抽象、序列化与资源池设计
- 模块化的测试配置:静态配置、动态配置与带逻辑功能的配置
- 友善的测试报告和日志:树形测试步骤与日志管理
- 灵活配置的测试引擎:测试引擎职责与执行机制
- 测试用例的复用与扩展:面向对象设计在测试中的应用
- 数据驱动与事件驱动设计:先进设计思想在测试平台中的实践
- CI/CD集成实战:自动化测试平台与持续集成流程的融合
- 云端部署方案:测试平台的云化转型与部署实践
- 大型企业经典案例:多个企业级自动化测试平台案例剖析
- 平台化设计总结与展望:自动化测试平台的发展趋势