原文:UIVeri5: More Stable System Tests for UI5 Applications
UIVeri5 是来自 SAPUI5 的开源系统测试工具。它基于 Protractor,这是一种非常流行的基于 node.js 的工具,由 Google 开发,用于系统测试。
与其他工具(Selenium、nightwatchjs、Robot、Casper.js、Cypress ……)相比,最重要的区别是具有更好稳定性的附加功能。众所周知,稳定性始终是系统测试的一大挑战,UIVeri5 的特性在这方面有很大帮助,可以使测试更加稳定。与 OPA 类似,UIVeri5 支持控件定位器,即使 SAPUI5 更改某些实现细节,它也可以稳定地识别元素。此外,它负责异步,因此您不需要添加 sleep 和 wait 语句。此外,您可以开发可重用的页面对象,例如用于 FIORI Elements 应用程序。
UIVeri5 的主要功能
- 自动化进行真实的浏览器(包括移动设备)交互,UIVeri5 的基金会(Protractor)拥有庞大的社区
- 与 UI5 渲染自动同步(不需要显式调用 waits, sleeps),提高测试稳定性
- OPA5 定位器,提高测试稳定性,还支持 DOM 选择器,如 CSS、jQuery、XPath
- 基于 node.js,允许使用庞大的 node.js 工具生态系统
- 基于 ES6, 允许使用新的 JavaScript 功能
- 被测系统上的身份验证由 UIVeri5 处理
- 多浏览器测试,涵盖 Google Chrome、Mozilla Firefox、Microsoft Internet Explorer、Microsoft Edge、Mac 和 iOS 上的 Safari、Android 上的 Google Chrome
- 行为驱动开发 - Bebavior Driven Development. Gherkin 特性 (cucumber-js) 和 Spec (Jasmine) 文件支持
- 持续集成,可以轻松集成到 CI/CD 解决方案
- 视觉测试,截图对比
- 开源
Test Strategy
即使测试更稳定,测试金字塔仍然是相关的,您应该将精力集中在单元和集成测试上。
在大多数情况下,系统测试仅用于快乐路径(例如测试主场景、演练整个系统堆栈、跨应用程序导航)或冒烟测试。
以下测试金字塔展示了我们如何使用工具进行不同级别的测试。 OPA 的重点是使用 MockServer 详细测试与后端隔离的单个应用程序。 UIVeri5 用于通过包括后端在内的完整堆栈进行系统测试。