回归原理
一、原理流程图
测试脚本采用 BDD 的风格定义了测试用例,通过 Runner 执行(浏览器操作通过调用 WebDriver Service 实现),返回对应的回归测试结果(object),测试结果经过 Reporter 进行渲染,生成测试报告。
1.1 Runner
Runner 包括 mocha
、 macaca-mocha-parallel-tests
(fork mocha-parallel-tests
优化的版本),其中跑单个测试用例使用 mocha
,并行跑多个测试用例则使用 macaca-mocha-parallel-tests
。Runner 的作用可以简单概括为以下三点:Pre-Loader(预加载功能)、Runner(执行器)、Reporter(报告器)。
- Pre-Loader(预加载功能):通过 describe/it 函数定义一组或单个的测试用例,通过 loader 处理,可转化成一个树状结构的 object
- Runner(执行器):object 可以通过 Runner 执行回归测试,输出测试结果(也是一个树状 object)
- Reporter(报告器):利用测试结果,生成简单格式的测试报告输出
1.2 Reporter
Mocha 自带的 Reporter 展示形式比较单一,难以满足我们的测试场景需求。UIRecorder 自主维护的两款报告器是 macaca-reporter
、 mochawesome-uirecorder
,uirecorder@3.0 版本以后统一使用 macaca-reporter
, mochawesome-uirecorder
已废弃。其中, macaca-reporter
的作用主要是利用 Runner 执行后返回的结果(object),自定义渲染模版,从链路树模式、脑图模式、全图模式和列表模式多维度直观呈现运行结果。
1.3 WebDriver Service
WebDriver 利用浏览器原生的API,封装了一层 WebDriver API,通过 http 协议可以直接操作浏览器页面的DOM节点元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,配置证书等)。且 Selenium 已得到各大主流浏览器厂商支持,可利用 WebDriver 服务进行多浏览器兼容性测试。
二、更多参考
如何实现一个简易版的 Mocha:https://www.yuque.com/artist/aori6e/vt4171 macaca-mocha-parallel-tests:https://github.com/macacajs/macaca-mocha-parallel-tests F2etest WebDriver:https://www.yuque.com/artist/f2etest/webdriver-cloud