OpenStack中的测试分类

OpenStack中的测试分类可以分为以下的类型: 

1) 单元测试 (small test / unit tests)

  • 单元测试存放在每个组件的代码库中, 比如 nova的单元测试都放在 nova/tests 目录
  • 单元测试主要是针对与源码级别的测试. 测试的是函数级别的代码
  • 需要数据或者模拟环境? 使用Mock进行模拟
  • unit test一般只针对于public级别的函数 

2) 功能测试(Medium Tests)

  • 功能测试也存放在每个组件的代码库中, 比如 nova的单元测试都放在 nova/tests 目录
  • 和单元测试相比, 功能测试要基于真实的的依赖环境 (数据库, 文件IO系统, Hypvervisor等等) 

3) 集成测试 (Large Tests)

集成测试工具 -- SmokeStack (基于UI的集成测试工具)

基于Ruby的集成测试工具

https://github.com/dprince/torpedo

集成测试工具 -- Tempest
 
  • 集成测试的代码放在独立的项目比如 tempest 中
  • 集成测试要运行在一个完整的部署环境中, 比如一个完整的部署了OpenStack的环境
  • 集成测试专注在系统功能, 完整性, 以及和真实硬件环境的集成
  • 集成测试代码中一般不会使用fake / mock 

4) 界面测试 (UI tests)

社区有一个项目, 是针对于Horizon的界面进行自动化测试的

https://wiki.openstack.org/wiki/Horizon/Testing/UI 

  • 这个测试工具使用了selenium 对Horizon进行了集成测试
  • 在运行测试前, 要先启动OpenStack Server, 并确保Horizon运转正常. 

5) 性能测试 (stress tests / performance tests)

社区有一个项目Rally, 是针对于性能测试的

https://wiki.openstack.org/wiki/Rally 

  • Rally 会自动部署一个OpenStack的环境, 并运行tempest来验证环境
  • Rally会模拟生成用户负载, 来观测性能测试问题
  • Rally通过Ceilomter来收集 Hypervisor 和VM的数据, 并放在Rally的数据库中
  • Rally 最终会生成 性能测试报告 

6) 国际化测试 (globalization tests)

  • Globalization 会测试文字翻译是否可以正常切换, 并且语法正确
  • Globalization 要确保文字是正确编码, 并且符合不同语言的阅读习惯 (比如阿拉伯语是从右向左的阅读习惯) 

7) 升级测试 (upgrade tests)

使用DevStack, 对OpenStack进行升级测试

相关推荐