一、应用而生的前端测试框架
随着前端页面开发演化成了前端应用程序开发后,前端实际具备了后端的一切能力(Node.js作为前端Server,也可以提供接口接收客户端的请求并处理,能够保存、处理后端传递过来的数据),但Selenium/WebDriver本身却只能单纯的用在UI测试层面(除非加入第三方库),其越来越不能满足整个测试行业对前端自动化框架的需求。
越来越多的前端测试框架涌现,如Karma、Nightwatch、Protractor、TestCafe、Cypress和Puppeteer,这些测试工具出中有的还依托于selenium/webdriver的功能或填补了其空白,其中佼佼者如Cypress,它的底层完全不依托Selenium/webdriver,运行速度也比其快。
Cypress和被测应用程序运行在同一个浏览器界面,使得Cypress可以测试金字塔的任意层,且Cypress是不需要任何第三方扩展就具备一个优秀的测试框架的全部特征事实。
二、前端自动化测试框架组成
1.什么是测试框架?
是由一个或多个自动化测试基础模块、自动化测试管理模块、自动化测试统计模块等组成的工具集合。
2.一个优秀的前端自动化框架组成部分?
底层核心驱动库:一般指用于操作被测应用程序的第三方库
可重用的组件:一般用于降低开发成本,如时间处理模块、登录模块等。
对象库:存储被测对象的仓库。实际应用中常常将页面进行分组,把一个页面上的所有对象放到一个类里,也就是PO模式(Page Object)
配置文件:测试环境的配置、应用程序的配置。
工具:能完成特定功能的独立程序或代码片段
方便易用的测试数据:数据在测试中的重要性不言而喻,数据创建分为实时创建和事先创建。
3.如何创建数据?
人工构造数据
通过调用前端GUI或后端API构造数据
直接向DB里面插入所需数据
4.测试用例的组织和运行
测试用例在测试框架中体现是测试脚本,测试脚本应该做到业务操作粒度合适,断言明确充分,前后脚本解耦
5.测试框架需要能支持什么?
测试用例顺序或者并发执行
测试用例分组运行
动态挑选测试用例执行
根据测试数据自动生成测试用例
6.什么错误恢复机制?
由于环境、程序、代码存在各种不确定因素,测试框架需要具备一定的错误恢复机制。
测试用例执行中引起的错误类型一般分为:代码/运行导致的错误、环境/依赖导致的错误
错误处理措施:停止运行和错误恢复。错误恢复通常标记当前用例识别,清理失败数据,恢复测试环境,然后运行下一条测试。错误恢复时机可以为事先恢复(当前用例运行前将环境和数据恢复到初始状态)和事后恢复(当前用例运行完成后将环境和数据恢复到初始状态)
7.全面的测试报告
测试用例条数统计、测试用例成功/失败百分比,测试用例总执行时间等总体信息。
单条测试用例包括测试用例ID、测试用例运行结果、测试用例运行时间、测试用例所属模块、测试失败时刻系统截图、测试的日志等信息;
测试报告应该包括不同格式如HTML、XML(用于跟CI集成)等;
包含完善的日志文件,方便出错时排查和定位。
三、前端自动化测试框架设计原则
1.代码和数据分离
2.剥离可共用的库
3.可移植性,可维护性
4.高扩展性,高稳定性
5.版本控制
本文暂时没有评论,来添加一个吧(●'◡'●)