前言 笔者在十多年前参加了公司国外项目的测试,当时项目周期较长,并且项目周期内有大量的工作是对已有的功能进行回归测试,因此笔者就有了使用自动化测试工具解决重复性工作的想法。当时流行的UI自动化测试工具只有QTP,该工具可以实现B/S架构和C/S架构系统的UI自动化测试。于是笔者就利用业务时间对QTP进行研究,成功地编写了上百条自动化测试用例,并将其应用于项目回归测试,UI自动化测试的接入节省了大量的回归测试时间,同时也解放了人力。在项目结束后,由于表现出众被任命为测试组长,后来当上测试经理。 经历了UI自动化测试的成功,笔者一直在反复思考一个问题,那就是QTP自动化测试背后代码是如何实现的?带着这样的疑问,笔者学习了Java开发。随着时间的推移Selenium自动化测试工具逐渐流行了起来,由于笔者有了Java开发经验,于是就趁热打铁开始学习Java如何调用、封装Selenium,将Selenium框架应用于公司项目中,同时也逐渐向测试开发工程师转型。几年后,Python逐渐成了测试工程师的主流语言,笔者也顺应潮流开始自学Python,并将Java Selenium框架用Python语言重新实现并加以优化。在Python语言的学习过程中,笔者将学习过程和细节编写成博文并录制视频,为的是分享学习经验,让更多的测试工程师少走弯路,能够学习到可以用于实战的测试开发技术。 笔者写书的目标是让读者学会Python和Selenium,并可以使用Python对Selenium进行二次开发,最终搭建出实用性较强的测试框架,以便应用于公司的实际项目中。考虑没有基础的读者学习起来会比较困难,于是笔者在框架封装过程中会先回顾前面章节的内容,然后对内容进行优化,这样会让初学者能够衔接得更加顺畅,而且笔者的多次封装都是基于自研项目进行的反复操作,这样更符合学习规律。在测试框架封装过程中,笔者尽量暴露所有可能遇到的问题,相信读者看到问题一个个被解决也会对将来的测试开发工作更有信心。 资源下载提示 素材(源码)等资源: 扫描目录上方的二维码下载。 视频等资源: 扫描封底的文泉云盘防盗码,再扫描书中相应章节的二维码,可以在线学习。 本书能够出版首先需要感谢清华大学出版社赵佳霓编辑,在本书的编写过程中她提供了很多建议和帮助; 其次需要感谢笔者的运维开发同事刘耀,笔者在编写Jenkins持续集成的阶段,他帮助笔者梳理了流程、解答了很多细节问题; 最后感谢我的家人,在写书的过程中家人分担了很多家庭琐事。 栗任龙 2024年3月