UI 自动化测试¶
https://blueprints.launchpad.net/tripleo/+spec/automated-ui-testing
我们希望为 TripleO UI 引入一套自动化的集成测试。这将防止回归,并带来更稳定的软件。
问题描述¶
目前,上游 CI 仅测试 lint 错误,并运行我们的单元测试。我们希望在 CI 管道中添加更多针对 tripleo-ui 的集成测试。这将包括基于 Selenium 的方法。这使我们能够通过使用无头浏览器在 CI 中运行来模拟浏览器,并且我们可以检测到比仅使用单元测试更多的问题。
提议的变更¶
概述¶
我们希望为 tripleo-ui 编写一个 Tempest 插件,该插件使用 Selenium 驱动无头浏览器来执行测试。我们选择 Tempest 是因为它在 OpenStack 中是一种标准,并为我们提供了良好的错误报告。
我们已经建立了 tempest-tripleo-ui 项目。
我们计划编写一个 CI 作业来在 Tempest 中运行我们的代码。在初始实现中,这将仅涵盖检查某些 UI 元素是否存在,并且不会实际运行任何部署。
替代方案¶
另一种选择是,我们手动进行所有测试,浪费时间,降低速度,并产生更多错误。
安全影响¶
此项的安全影响最小,因为它特定于 CI,并且不面向用户。
其他最终用户影响¶
最终用户不会与此功能交互。
性能影响¶
此功能将仅消耗 CI 资源。不应给最终用户带来任何负面的资源影响。
其他部署者影响¶
我们的目标是生成更稳定的软件。但我们本身并没有更改任何功能。
开发人员影响¶
开发人员将对他们的软件获得更高的信心。
实现¶
负责人¶
- 主要负责人
hpokorny
- 其他贡献者
ukalifon akrivoka
工作项¶
编写 Selenium 测试
编写 Tempest 插件代码以运行 Selenium 测试
编写一个新的 openstack-infra 作业,在
check和gate上运行 Tempest 插件。最初,这将是一个简单的健全性检查作业,以确保 UI 已渲染。CI 作业不会运行部署。
依赖项¶
Tempest
Selenium
测试¶
这有点元了。
文档影响¶
我们将记录新加入 tripleo-ui 项目的开发人员如何开始编写新的集成测试。
参考资料¶
openstack-dev 邮件列表讨论