向场景测试添加自定义场景

https://blueprints.launchpad.net/sahara/+spec/custom-checks

本规范建议为更全面的 Sahara 测试添加自定义测试到场景测试中。

问题描述

目前,场景测试仅测试基本功能,用户无法添加自定义测试来检查 Sahara 中的其他功能。

应该添加额外的测试

  • 检查挂载和可用的 cinder 卷;

  • 检查集群上启动的服务;

  • 检查当前未测试的其他进程

提议的变更

自定义测试需要添加到 sahara/tests/scenario/custom_checks 中,并且需要在场景测试中实现对这些场景的支持。

为了实现本规范,需要更改场景测试中“scenario”字段的字段参数。现在类型为“enum”,需要更改为“string”,以便能够设置自定义测试。

此外,应该重写 sahara/tests/scenario/testcase.py.mako 模板。自定义测试将从名为 check_{检查名称} 的模块中调用,模块内部包含 check() 方法。

所有当前自定义检查的辅助方法都将编写到包含这些测试的模块中。可以在 sahara/tests/scenario/base.py 中实现可在多个自定义场景中全局使用的通用方法。

替代方案

可以将测试手动添加到场景测试的 Base 类中。

数据模型影响

REST API 影响

其他最终用户影响

部署者影响

开发者影响

Sahara-image-elements impact

Sahara-dashboard / Horizon 影响

实现

负责人

主要负责人

esikachev

工作项

  • 添加运行自定义场景测试的能力;

  • 将旧集成测试中的脚本迁移到场景测试中作为自定义检查;

  • 添加新的自定义检查。

依赖项

测试

文档影响

参考资料