天天看點

Openstack測試架構Tempest介紹

Openstack測試架構Tempest介紹

  Tempest的優點

  1.Tempest可以自動尋找,執行測試:自動查找目前目錄下所有以[Tt]est開頭的Python源檔案,并且按此規則遞歸查找子目錄;所有以[Tt]est開頭的Python源檔案裡所有以[Tt]est開頭的function和class,以及繼承自unittest.TestCase的class(不需要以[Tt]est開頭)都會被執行。

  2.Tempest可以指定檔案、子產品、函數進行測試。

  3.Tempest可以指定類型進行測試。

  Tempest配置

  1.git下載下傳Tempest後,在Tempest根目錄下拷貝一份配置檔案tempest.conf:

  cp etc/tempest.conf.sample etc/tempest.conf

  2.配置tempest.conf ,主要配置以下幾個屬性:

  配置identity (Keystone) 的host

  配置Compute (Nova) 的username、password、 tenant_name和alt_username、alt_password、alt_tenant_name(均不是管理者使用者。配置兩個不同的使用者,測試普通使用者不能更改和删除其他使用者的image、server等)

  配置Compute (Nova) 的image_ref和image_ref_alt(配置兩個不同的image ID)

  配置Image (Glance) 的ssh user

  配置compute-admin和identity-admin的管理者使用者名、密碼和tenant名。

 使用Tempest進行測試

  執行整個tempest測試架構:nosetests tempest

  指定檔案測試,例如:nosetests tempest.api.compute.flavors.test_flavors.py

  指定子產品進行測試,例如:nosetests tempest.api.compute.flavors.test_flavors.py:FlavorsTestJSON

  指定函數進行測試,例如:nosetests tempest.api.compute.flavors.test_flavors.py:FlavorsTestJSON.test_list_flavors

  指定類型進行測試,例如 :tempest –s 隻執行smoke類型測試

  指定特定的attr的用例進行測試,例如:nosetests –a type=’gate’ 隻執行attr為type=’gate’的測試

  API測試用例

  tempest.api是openstack api測試用例集。以函數test_list_flavors的執行舉例,以下是該用例執行時各類間的繼承和調用:

Openstack測試架構Tempest介紹

  FlavorTestJSON繼承自BaseComputeTest。Clients是負責管理包括FlavorsClient在内的所有的openstack clients的,同時調用TempestConfig來讀取配置檔案。FlavorsClient繼承自RestClient,封裝了通路openstack api的接口。FlavorsTestJSON通過FlavorsClient來實作對openstack api的通路。

  測試結果舉例:

Openstack測試架構Tempest介紹

  對Tempest的擴充

  1.對tempest中的測試用例進行了擴充,添加了産品自研子產品和功能的測試用例。

  2. 對測試機制進行完善,并且在tempest中加入異常分支檢查。

  3.在tempest中植入其他測試工具如burnintest。

  3. 在tempest基礎上做了二次開發,開發了穩定性測試工具,測試系統在openstack時間有負載的情況下的可靠性和可用性。

最新内容請見作者的GitHub頁:http://qaseven.github.io/