实际在过去很长时间里编写web应用UI层自动化脚本主要使用webdriver或者webdriver衍生出的工具或者框架,编写过UI层脚本的小伙伴可能都会遇到下面的一些痛点
- 难以定位web应用某些页面元素。
- 脚本失败后难以定位失败原因,调试成本高。
- 脚本稳定性差,相同的脚本时而成功时而失败。
上面的三个痛点造成UI层自动化测试维护成本很高。为了页面元素易于定位,某些团队可能从开发web应用时就规定每个页面元素必须有唯一Id,这种方式解决了测试的问题,但却增加了开发成本。为了解决脚本不稳定性,编写自动化案例时会添加各种等待处理逻辑,但即便这样,脚本可能还是会出现偶发性失败。那有没有更好的解决办法呢?随着NodeJs的流行,也出现了新的UI层测试框架,其中Cypress、Puppeteer、TestCafe是使用比较广泛的三个测试框架,使用这三个框架能有效解决上面的三个痛点。
那上面三个框架有哪些突出特点呢?
- 定位和操作页面元素时内置了自动等待重试算法,极大提升了脚本稳定性。
- 提供了更好的调试体验,尤其是Cypress框架提供的Test Runner极大提升了调试效率。
- 提供了丰富的定位页面元素的api,可以轻松定位到页面上任何元素。
那为什么要介绍三个测试框架呢?因为每个框架都有各自的优点和局限性。例如Cypress和Puppeteer只支持chrome和firefox浏览器,如果要测试IE浏览器,那么可选择TestCafe。
系列博客内容
系列博客会从测试数据管理、配置信息管理、操作页面元素、校验执行结果、调试策略、提升脚本可读性、稳定性六个方面介绍如何搭建完善稳定的UI层自动化测试。每个知识点的讲解都提供demo代码,且所有demo代码都可从github获取,能有效降低大家学习成本。专栏按测试框架分为三部分,具体内容如下所示。