Tempest Rocky的新功能一览
admin
2023-04-09 22:03:35
0

Tempest 简介

Tempest是一个旨在为OpenStack 提供集成功能测试的开源项目,包含了OpenStack基本组件(nova,keystone,glance,neutron,cinder等)的测试用例,同时支持json,xml两种rest api格式类型的测试,以及cli测试。它是基于unittest2和nose测试框架实现的,灵活且易于扩展及维护,使得OpenStack相关测试效率得到大幅提升。

Rocky版本功能变更一览

Tempest目前最新版本号为v19.0.0,它支持对OpenStack的Rocky,Queens,Pike 和Ocata版本的测试,在刚发布的OpenStack Rocky版本中,它的功能变更如下:

  • 新增v3-ext/os-endpoint-policy api,支持服务endpoint和访问权限关联的测试。
  • V3 services_client中新增enable_service,disable_sevice,disable_log_reason,freeze_host 和thaw_host api endpoint。
  • Tempest.lib.decorators.related_bug 和 tempest.lib.decorators. skip_because中新增参数bug_type,用来跟踪测试bug。
  • 新增update flavor api。
  • 新增keystone 的application credentials interface 测试。
  • Identity v3 库里新增projects_tags_client api,可实现对项目tag功能的测试,如update_project_tag,list_project_tags,update_all_project_tag,check_project_tag_existence,delete_project_tag,delete_all_project_tags。
  • Compute library 里新增update_service api,原/os-services/disable,/os-services/disable-log-reason,/os-services/enable, /os-services/force-down变更为disable_sevice,disable_log_reason,enable_service,update_force_down。
  • Config中新增vnc_server_header配置项,vnc服务的名字可以显示在响应头部。
  • V3 api 里新增volume v3 api,并且volume测试默认api从V2变更为V3。
  • Cinder 命令行选项--endpoint-type 变更为--os-endpoint-type。
  • Config文件配置项allow_tenant_isolation 变更为use_dynamic_credentials。

Tempest 代码结构

Tempest 项目会被来自不同公司的社区成员更新:修改bug,完善功能,增加对OpenStack 最新功能的测试用例等等。它的大致目录结构如下:

├──tempest
├──api #api的测试集。
├──compute #os nova 相关测试
├──identity #os keystone 相关测试
├──network #osnetwork相关测试
├──image. #os glance 相关测试
├──volume #os cinder 相关测试
├──object_storage #os swift 相关测试
├──cmd #openstack 命令行工具测试集。
├──common #一些公共的工具类和函数。
├──scenario #对openstack 的常用场景进行测试,包括基本的vm启动等。
├──services #tempest 自己实现的openstack api client。

它的代码结构如图所示:

Tempest Rocky的新功能一览

Tempest 测试过程

在准备Tempest测试环境之前,需要先准备好被测试的OpenStack(OS)环境。

安装
git clone git://git.openstack.org/openstack/tempest
cd tempest
pip install -r requirements.txt -c test-requirements
python tempest/setup.py install

初始化
确定测试环境目录(/opt),在/opt下执行
tempest init tempest-test
会生成tempest-test 测试文件夹,文件夹结构如下:
├── etc
│ ├── tempest.conf
│ └── tempest.conf.sample
├── logs
└── tempest_lock

修改配置文件tempest-test/etc/tempest.conf
Tempest.conf主要分为以下session,它们要和测试的OS环境匹配。
[auth]:os环境admin用户登录信息。
[identity]: 主要包括user/tenant 相关的权限认证测试。
[compute]: 主要包括os compute api/cli相关测试。

[image]:主要包括os镜像api/cli 相关测试。
[network]: 主要包括os网络api/cli 相关测试。
[volume]: 主要包括os cinder 存储。

执行测试
Tempest 会查找目录下所有以(T)test开头的python源文件,并且按此规则递归查找子目录,(T)test开头的python源文件中所有以(T)test开头的function(测试用例)都会被执行;它可以指定文件,模块,函数进行测试,也可以指定类型进行测试。

执行所有测试
tempest run
并发测试
tempest run --parallel
执行某一函数测试用例
tempest run tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_reboot_non_existent_server
执行某一文件测试用例
tempest run tempest.api.compute.servers.test_servers_negative

测试结果
Tempest的测试结果有四种,测试错误(error),测试失败(failure),跳过(skip),成功(success)。
--测试错误:可以理解成测试代码或者配置环境有问题,在执行时报错。
--测试失败:可以理解测试代码执行正常,但没有得到预期的测试结果。
--跳过:也可以理解为测试忽略,比如某个测试只想在window下才运行,这样在linux就会跳过,也就是忽略。
--成功: 测试代码执行正常,也得到预期的测试结果。

相关内容

热门资讯

徐巧芯剖析赖清德:最怕自己丢掉... 海峡导报综合报道 大罢免投票一周年纪念活动26日举行,台北市长蒋万安出席并怒轰,民进党一年过后仍没有...
中国红十字会总会紧急向广东调拨... 记者从中国红十字会总会了解到,针对台风“红霞”给广东造成的灾情,中国红十字会总会启动四级应急响应,紧...
这些少年,正被“毒蛋”围猎 李梦抽了几口电子烟,吐出了白色的烟雾,有一股浓烈的水果香味。随后,她看着自己握电子烟的手,跟身边人说...
蒋万安号召“倒阁”,卢秀燕认为... 海峡导报综合报道 台北市长蒋万安27日抛出震撼议题,表示多名民代向他提议推动“倒阁”,要求台行政机构...
特朗普将在白宫会见两位重要客人 俄乌战争仍未结束,美伊冲突又有升级风险。在此背景下,美国总统特朗普将在白宫接见乌克兰和以色列领导人。...
新租客打扫卧室柜子上掉落4万元... 近日,莲前西路某小区内,张倩签下一套房子的租赁合同。当天上午,她带着12岁的大女儿周馨怡和11岁的小...
六部门通告:禁止涉军队退役报废... 关于禁止涉军队退役报废装备销售活动的通告近年来,部分经营者在线上线下公开销售涉及我军退役报废装备(指...
九寨沟景区发生泥石流,部分道路... 7月26日,九寨沟风景名胜区管理局发布泥石流灾害通报:2026年7月26日15时50分,九寨沟景区局...
空调26度不凉是什么原因 从空调内部元器件来说,不凉的原因有可能是温度传感器出现故障了,也有可能是空调压缩机或者铜管出现问题,...
鲸鸿动能携手香港国际机场、鸿蒙...   2026 年 7 月 25 日,十余位鸿蒙车主组成的车队从珠海出发,经港珠澳大桥通关抵达香港国际...