在ceilometer项目中创建功能和集成测试¶
https://blueprints.launchpad.net/ceilometer/+spec/ceilometer-functional-tests
目前,Ceilometer之外的集成测试仅有Tempest,它并不能完全覆盖所有功能。在巴黎峰会上,决定将部分测试(以及新测试的实现)移动到Ceilometer代码树中。 针对不同数据库的测试也应该移动到这个模块中(目前它们位于单元测试的文件夹中,这通常不符合它们的用途)。 并且所有单元测试都应该从ceilometer/tests/路径移动到ceilometer/tests/unit文件夹,以便ceilometer/tests树只包含三个文件夹:unit(单元)、functional(功能)、integration(集成)。
因此,我们应该开发集成测试,并为其创建一个Jenkins任务,该任务将在Ceilometer代码树中的一个单独模块中运行这些测试(针对不同后端(backend)的测试也将移动到这个模块中)。 这些测试将采用DSVM风格设计。 需要与真实的其他OpenStack服务通信的测试将遵循Tempest的做法,使用这些组件的主分支。
问题描述¶
由于许多子任务以及与其他项目的交互(特别是与OpenStack infra),实施该计划需要很长时间。 采用这种方法,我们可以实现Tempest中未包含的测试: * grey/white-box测试,这些测试不是纯API测试,并且可能假定对实现细节的了解 * 需要加速轮询间隔才能在合理的时间内完成的测试,例如更改pipeline.yaml中的cpu_source间隔并重启计算代理,以便收集足够的cpu_util数据点来驱动告警测试 * 依赖于其他OpenStack服务传入通知及时性的测试。 实施此任务将大大提高ceilometer项目的测试覆盖率,包括以前未经过测试的功能。
提议的变更¶
替代方案¶
将新的集成测试贡献给Tempest项目。 这种方法不能让我们满意,因为OpenStack QA团队会拒绝过于具体的项目集成测试,只有项目团队才能决定它们是否良好。
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
Pipeline 影响¶
无
其他最终用户影响¶
无
性能/可扩展性影响¶
无
其他部署影响¶
无
开发者影响¶
无
实现¶
负责人¶
- 主要负责人
vrovachev <vrovachev@mirantis.com>
- 其他贡献者
chdent <chdent@redhat.com>
工作项¶
工作项: * 添加ceilometer/tests/{integration|functional}测试用例,直接使用python-clients。 * 将ceilometer/tests测试用例移动到ceilometer/tests/unit。 * 将所有现有的单元测试移动到ceilometer/tests/unit。 * 将现有的数据库场景测试移动到ceilometer/tests/{integration|functional}。 * 在ceilometer/tox.ini中添加新的tox目标(functional、integration和其他必要的)。 * 在os-infra/project-config/jenkins/jobs/ceilometer.yaml中添加{pipeline}-ceilometer-dsvm-functional-{datastore}作业模板,其中datastore在[‘sqlalchemy’, ‘mongodb’, ‘hbase’]中。
未来生命周期¶
无
依赖项¶
无
测试¶
无
文档影响¶
无
参考资料¶
无