1. temepst简介
Tempest主要用于OpenStack的API功能测试。从代码的可见性角度来看,Tempest是针对OpenStack的黑盒测试,只能检测API返回结果是否合乎预期,而不能对OpenStack内部代码进行检查。
测试用例脚本包括装饰器、客户端调用、断言语句等组成部分。测试脚本中调用客户端向OpenStack平台发送HTTP报文,来完成资源的增、删、改、查。通过断言语句判断是否符合预期结果,决定测试用例是否通过。
1.1 tempest中的常用装饰器
-
@decorators.idempotent_id()
为测试用例标记UUID,每个tempest测试用例都有一个唯一的UUID。 -
@decorators.attr()
标注测试用例类型,如“slow”、“smoke”、“negative”。 -
@utils.services()
标记测试用例所需的服务。 -
@testtools.skipIf()
符合条件时跳过用例。 -
@testtools.skipUnless()
不符合条件时跳过用例
1.2 tempest中的断言
断言是指有条件地在程序代码中触发异常,用于检查测试时是否符合预期结果。在tempest脚本编写过程中,常用的断言有如下几种:文章来源:https://uudwc.com/A/Avr
语句 | 含义 |
---|---|
assertEqual(expected, expr) | 判断是否等于预期值 |
assertNotEqual(expected, expr) | 判断是否不等于预期值 |
assertGreater(a, b) | 判断a是否比b大 |
assertLess(a, b) | 判断a是否比b小 |
assertIn(a, b) | 判断a是否在b中 |
assertNotIn(a, b) | 判断a是否不在b中 |
assertRaise() | 判断是否抛出了异常 |
1.3 tempest自动化用例的执行过程
如下图完整的展示了tempest中每个自动化用例实际执行的过程
文章来源地址https://uudwc.com/A/Avr