前言
近年来,在互联网行业飞速发展的背景下,频繁交付、快速迭代逐渐成为软件开发、交付的首要目标。所以,敏捷的、能提高组织运行效率并能减少浪费的各种理论和方法越来越受欢迎。DevOps和敏捷开发作为其中的佼佼者,已经被广泛应用在各种项目实践中。在DevOps和敏捷开发实践中,自动化测试在整个测试活动中所占的比重也越来越大,但是用于自动化测试的工具却长期没有大的突破。
说起前端自动化测试,大家一定会想到Selenium/WebDriver。诚然,Selenium/WebDriver作为前端UI自动化测试的王者,曾经承担起了绝大多数的前端UI自动化测试工作。但是前端自动化测试,真的只能包含UI自动化吗?
时至今日,前端Web开发技术,早已经从简单的静态页面阶段,发展到现代Web应用程序阶段。特别是随着Node.js(Node.js可以看作是可以运行JavaScript的服务器环境)的出现,使得前端应用越来越复杂,譬如前端也可以用作服务端来操作数据库、提供API等。Selenium/WebDriver在用作此类应用程序进行自动化测试时,越来越显得笨拙,难以满足用户期望。
Cypress作为新一代的自动化测试框架,与Selenium/WebDriver相比,拥有无与伦比的优势:
• Cypress运行在浏览器之内,而Selenium/WebDriver运行在浏览器之外。
• Cypress不基于JSON Wire协议,比Selenium/WebDriver运行更快。
• Cypress不仅能做UI自动化测试,而且可以做接口测试,集成测试。
与只能用在UI自动化测试的Selenium/WebDriver相比,Cypress能够覆盖“测试金字塔”的方方面面,而且在元素定位、自动等待、Mock服务器返回方面都展现出了超强的能力。除此之外,Cypress允许测试者直接通过接口请求的方式,即刻满足测试场景所需的配置,而无须烦琐的测试准备。
“测试你的代码,而不是你的耐心”。Cypress作为下一代前端自动化测试框架的翘楚,在NASA(美国国家航空航天局),Amazon Web Services(AWS,亚马逊云)等公司成功部署并商用,而且在UI自动化测试、接口自动化测试以及端到端(End to End)自动化测试中均有不俗的表现。
目前图书市场上,还没有一本专门介绍End to End前端测试框架Cypress的书,作为Cypress框架的受益者,我期望广大测试人员在项目实践中尽早使用Cypress,以提升测试效率,减少不必要的时间浪费。
最后,我希望本书可以促进国内互联网测试从业者对前端测试框架的探讨和交流,并期待国内自主可控的优秀前端测试框架诞生。
从本书中可以收获什么
本书是一本介绍软件自动化测试框架搭建、使用及定制的技术书籍,更是一本指导测试工程师如何做端到端自动化测试(包括UI自动化测试和接口自动化测试)的技术类书籍。
基于测试框架Cypress,本书由浅入深地介绍了自动化测试的方方面面。内容包括测试用例动态生成,动态挑选,动态执行;数据驱动;PageObject设计模式;挡板(Mock Server);持续集成(CI/CD)及测试报告等多个知识点,并附有详细实例。
学习完本书,你不仅能搭建一套覆盖UI自动化、接口自动化测试的测试框架,也能将此框架与你的DevOps流程集成在一起,实现测试效率的提升。
本书面向的读者
本书适合以下读者阅读:
• 对自动化测试(不仅仅是UI自动化)有实际需求的软件测试人员。
• 希望能搭建起企业级、项目级测试框架的软件测试人员。
• 想转向自动化测试的测试人员。
• 对前端自动化测试新技术感兴趣,想进一步了解的人员。
本书可用于相关管理人员的自动化测试框架选型参考,也可当作初入测试行业的第一本测试框架实践指南。
本书内容结构
本书分为五大部分,14章,各部分的主要内容如下:
第一部分:前端自动化测试框架准备篇
本部分详细介绍了自动化测试的概念、组成及自动化框架的设计原则。
通过阅读本部分,读者会对目前软件测试的现状有充分了解,并能说出一个优秀的自动化测试框架应该包括哪些组成部分以及如何设计一个测试框架。
第二部分:前端自动化测试工具篇
本部分介绍了当前流行的前端测试框架,并进行了逐个比较。着重从架构、原理、解决的痛点等多方面比较了Selenium/WebDriver和Cypress的异同,借助这些比较,读者可以清晰了解到Cypress的优势。
通过阅读本部分,读者还可以了解到多个前端测试框架的各自优缺点和适用范围。
第三部分:前端自动化测试框架基础篇——Cypress基础知识
本部分从如何搭建Cypress测试环境讲起,首先介绍了如何编写你的第一个测试脚本,Cypress测试框架拆解;然后介绍了如何识别元素,如何通过命令行运行Cypress及运行完后的查看测试运行器;最后介绍了Cypress下特有的测试习惯。
通过阅读本部分,读者能够上手Cypress并搭建出自己的Cypress测试框架。
第四部分:前端自动化测试框架进阶篇——Cypress进阶
本部分主要介绍了Cypress的进阶知识点,Cypress最佳实践,接口测试及如何搭建自己的Mock Server。
通过阅读本部分,读者将能更自如地使用Cypress并能使用Cypress完成大多数自动化测试工作。
第五部分:前端自动化测试框架高级篇——持续集成实践
本部分主要介绍了如何使用Cypress进行并发(并行)测试,并着重介绍了Cypress如何与持续集成结合。每一位立志成为优秀测试架构师的同学都应该仔细阅读本部分内容。
通过阅读本部分,读者将对Cypress产生更大的认同,也会更加理解为什么Cypress能够天然适应“大中台,小前台”的战略并为企业赋能。
勘误与支持
限于个人水平,书中难免有不妥或不足之处,恳请各位读者海涵,并欢迎各位批评指正。
读者朋友可通过微信公众号“iTesting”直接留言或联系作者,也可以发邮件至testertalk@outlook.com。
致谢
感谢为我写推荐序、推荐语的朋友们,能够获得你们的认可和鼓励是我的荣耀。
感谢关注我公众号的朋友们和经常听我唠叨的各位测试行业的同行们,是你们的热情鼓励使得本书能够尽早与读者朋友见面。
感谢电子工业出版社的张瑞喜老师及为本书做校对审核工作的人们,你们表现出来的专业精神让我非常敬佩。
感谢我亲爱的家人们,是你们的默默支持和鼓励支撑着我更加努力。
感谢我的儿子享享,与你相伴玩耍,陪你成长,带给了我难以置信的幸福和快乐。
更要感谢我的妻子明莉,是你的爱和全力支持让我得以有足够长的时间思考与写作。
蔡超
2020年1月