《自动化测试框架设计》分为13章。第1章介绍了自动化测试框架设计基础。第2~7章主要介绍单元测试框架的扩展,包括自动化测试报告设计、数据驱动设计、数据库操作封装设计、随机测试数据设计、命令行工具设计和测试框架扩展功能设计。第8~11章主要介绍自动化测试库和设计模式,包括Web UI自动化测试设计、App UI自动化测试设计、HTTP接口自动化测试设计和自动化测试设计模式。第12章介绍了自动化测试平台化,以及Seldom框架如何为平台化提供支持。第13章介绍了自动化测试的AI探索。
《自动化测试框架设计》适合自动化测试、软件开发和质量保证领域的开发者,以及各大院校计算机科学和软件工程专业的学生阅读,也适合有一定经验的开发人员参考使用。
虫师,2011年6月开始在博客园持续分享测试技术和经验,先后出版《Selenium3 自动化测试实战》《Web接口开发与自动化测试》等书,销量均在2W+。在自动化测试、性能测试方面有着丰富实战经验,另外,对Web开发技术也有一定的积累。前后担任高级测试工程师、测试开发工程师,以及测试Leader等职位。
大约在2015年的时候,我负责公司的一个社区论坛项目的UI自动化测试工作。在使用Selenium编写UI自动化测试用例的过程中,我逐渐发现Selenium写起来有诸多不便。于是,尝试对Selenium的API进行二次封装,使其集成HTMLTestRunner.py报告,又封装了unittest单元测试框架的运行器。最终效果是可以比较方便地编写自动化测试用例。之后,我把项目放到了GitHub上,命名为pyse,并在GitHub上断断续续地做着一些更新和维护。整体来看,这是一个比较简单的自动化项目。
2019年,我对自动化相关技术有了更深刻的理解,也许是因为有更多的空间时间,我重新关注到GitHub上的这个项目,并开始在业余时间对其进行迭代更新。由于“pyse”这个名字在PyPI仓库中已被其他项目占用,于是我决定将项目更名为“Seldom”,并成功将其提交到PyPI仓库。现在,用户可以非常方便地通过pip命令安装和使用该项目。
此后,Seldom进入了快速迭代阶段。截至本书完稿时,Seldom的大版本已更新至3.x。它支持Web UI测试、API测试和App UI测试等,已经发展成为一个全功能的自动化测试框架。此外,Seldom提供了对平台化的支持。Seldom的社群活跃度很高,社群中几乎每天都有问题讨论。通过社群,我了解到Seldom已经在许多公司落地应用。
在开发Seldom的过程中,我积累了大量经验。在项目设计层面,我考虑了新功能的引入方式,并控制版本迭代以保持向下兼容;在自动化测试框架设计层面,我考虑了如何封装不同库的API,以便在满足业务需求的同时,提供更便捷、通用的功能。
我一直未将自己积累的自动化测试框架设计经验编写成书,原因有两方面:一方面,工作比较繁忙;另一方面,空闲时间我都在维护Seldom项目。一旦收到社群提出的需求、bug,或者我自己产生了一些新想法,我就会投入时间进行开发,它几乎已经成为我的“第二工作”。因此,写书的计划一直被搁置,直到2023年我才断断续续地开始动笔。成书后,我又花费了大量时间改稿。这导致整个写作周期非常长。当然,这也让我有更多的时间思考书中的内容,只保留了我认为最新、最有价值的部分。
最后,由于水平有限,书中难免有错漏之处。如果发现了错误,希望你能将错误反馈给出版社或我本人,我将感激不尽。再次感谢我的家人,正是因为他们无私的支持和默默的付出,我才能有更多的时间学习和维护开源项目;感谢编辑安娜,没有她的帮助,本书无法顺利出版;感谢拿到这本书的读者,正是你们的支持和鼓励,我才有动力继续编写新书。 虫师 2024年10月