Tempest学习笔记 001:Tempest简介

1 Tempest简介

Tempest主要用于OpenStack的API功能测试。从代码的可见性角度来看,Tempest是针对OpenStack的黑盒测试,只能检测API返回结果是否合乎预期,而不能对OpenStack内部代码进行检查。

2 Tempest测试脚本的执行流程

Tempest的测试脚本一般针对同一资源的测试用例会被封装在一个类中,并写在单独的文件中。有些资源涉及的测试用例较多,也可将测试用例按功能划分,并封装在多个类内。以虚拟机创建的测试脚本为例:

class ServersTestJSON(base.BaseV2ComputeTest):

    @classmethod
    def setup_credentials(cls):

    @classmethod
    def setup_clients(cls):

    @classmethod
    def resource_setup(cls):

    @decorators.attr(type='smoke')
    @decorators.idempotent_id('1')
    def test_verify_server_details(self):
        pass
        
    @decorators.attr(type='smoke')
    @decorators.idempotent_id('2')
    def test_list_servers(self):
        pass

编写Tempest测试脚本前,首先要了解一下测试脚本的执行流程:
在这里插入图片描述
执行流程可分为以下几个部分:

  • cls.setUpClass()
  • self.setUp()
  • self.tearDown()
  • cls.tearDownClass()

cls.setUpClass()和cls.setUp()都是测试用例运行前的执行代码,区别在于cls.setUpClass()运行于所有测试用例之前,对每个测试用例类只执行一遍。而cls.setUp()是每个测试用例运行前都要执行的,一个类内如果含有3个测试用例,self.setUp()则要执行3次。
self.tearDown()和cls.tearDownClass()则用于测试用例执行后的处理,其区别同上。

2.1 测试用例运行前

cls.setUpClass()包含了以下四个函数:

  • cls.skip_check()
  • cls.setup_credentials()
  • cls.setup_client()
  • cls.resource_setup()

这四个函数分别负责跳过测试用例类、建立凭证信息、建立客户端别名,建立测试资源。cls.setUpClass()不允许自定义的测试用例类继承,也就是说使用者不可以改变建立测试用例类的流程。但其调用的cls.skip_check()等函数是可以被自定义的测试用例类继承的,并在继承的函数中完成相应功能,例如:可以在继承的cls.skip_check()中实现根据配置文件开关跳过测试用例。

2.2 测试用例运行后

cls.tearDownClass()包含了以下两个函数:

  • cls.resource_cleanup()
  • cls.credentials_cleanup()

cls.resource_cleanup()用于测试资源的清理,cls.credentials_cleanup()用于测试租户、用户等清理。同样,cls.tearDownClass()也不允许自定义的测试用例类继承。cls.resource_cleanup()和cls.credentials_cleanup()一般也不被继承。

发布了5 篇原创文章 · 获赞 0 · 访问量 87

猜你喜欢

转载自blog.csdn.net/yangfan16120029/article/details/105328343