
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的執行舉例,以下是該用例執行時各類間的繼承和調用:
FlavorTestJSON繼承自BaseComputeTest。Clients是負責管理包括FlavorsClient在内的所有的openstack clients的,同時調用TempestConfig來讀取配置檔案。FlavorsClient繼承自RestClient,封裝了通路openstack api的接口。FlavorsTestJSON通過FlavorsClient來實作對openstack api的通路。
測試結果舉例:
對Tempest的擴充
1.對tempest中的測試用例進行了擴充,添加了産品自研子產品和功能的測試用例。
2. 對測試機制進行完善,并且在tempest中加入異常分支檢查。
3.在tempest中植入其他測試工具如burnintest。
3. 在tempest基礎上做了二次開發,開發了穩定性測試工具,測試系統在openstack時間有負載的情況下的可靠性和可用性。
最新内容請見作者的GitHub頁:http://qaseven.github.io/