Tempest -- OpenStack 集成测试套件
Tempest-Openstack Integration Test Suite
测试本身的API符合规范
Tempest概述
OpenStack的几种测试工具
Rally: https://blog.csdn.net/jiahaojie1984/article/details/52043274
selenium
OpenStack的集成测试集
开源项目
测试对象:live openstack集群
测试对象
- Api validation
- scenarios
- stress
- other specific tests useful in validating an OS
设计原则
- Live OpenStack
- 明确结果(OpenStack是否correct)
- 聚焦public interface
- 完全覆盖API和common scenarios
- Load Generator,负载生成器
- 自清理(及时释放资源)
- 自测试(Unit Test)
Tempest的测试分类和设计
Tempest测试分类–API-Test
- 当前tempest自主要的部分
- 验证OpenStack的API按照设计进行工作
- 用力要求
- 不适用。。。
Tempest测试分类–API-Scenarios
- 特点
- 采用end-to-end的测试用例,及用户的真是操作流程
- 测试uhuanjing的构建复杂
- 对针对模块间的协作场景
- 用途
- operator–快速验证openstack基本功能是否完善
- developer–测试new code是否导致其他模块regression(回归)
Tempest测试分类–Stress test
openstack是分布式异步系统,单元测试和功能测试不足以发现子高压下的问题
在tempest.conf文件的stress部分,需要额外的配置
运行:
安装
tempes CLI
执行
1
tempset run state -d 30
Tempest测试设计
Tempest 测试框架
tempset中测试和各个模块的unit test都是基于python unittest module
testcase是一个测试用例,包括测试前准备环境的搭建-setup,
执行测试代码-run以及测试后环境的还原teardown。一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个问题进行验证
开发的testcase,集成unittest或其他子类即可。
Tempest安装和使用
Tempest安装
- devstack
- 下载devstack,
- 将devstack、sample下的sample配置文件local.conf拷贝到。。。。。
- 。。。
- 。。。
- 生产测试OpenStack环境
- 或者live openstack
- 获取tempset代码
- 安装tempest
Tempest配置
配置/etc/tempest.conf
Devstack会自动生成配置文件,无需修改
生产/测试OpenStack需要手动生成配置文件
1 | tox -egening |
Tempest运行
1 | TempestCLI |
Tempest结果
。。。
Tempest自测和扩展
自测
Tempest作为OpenStack的组件之一, 也拥有自己的UnitTest
特点
- 对Tempest自身进行测试
- 确保Tempest自身各个模块的正确性
- 不能应用外部服务
测试方法:
tox
扩展
testcase扩展
- 增加更为全面的测试用例
公共类及client扩展
- 使得testcase的创建更为便捷
- tempsets/services tempsets/common 和 tempset/lib目录下
环境变量扩展
- 可进行更丰富的配置
- 在tempest/etc/tempest.conf力添加新的环境变量
- 在tempest/config.py内补充对新增环境变量的解析
Tempest的LBaaS的变化
负载均衡是openstack neutron支持的功能之一,负载均衡能够在网络请求分发到多个实际处理请求的虚拟机上。
Tempest的相关链接
Tempest -- OpenStack 集成测试套件