您好,登錄后才能下訂單哦!
Tempest是一個旨在為OpenStack 提供集成功能測試的開源項目,包含了OpenStack基本組件(nova,keystone,glance,neutron,cinder等)的測試用例,同時支持json,xml兩種rest api格式類型的測試,以及cli測試。它是基于unittest2和nose測試框架實現的,靈活且易于擴展及維護,使得OpenStack相關測試效率得到大幅提升。
Tempest目前最新版本號為v19.0.0,它支持對OpenStack的Rocky,Queens,Pike 和Ocata版本的測試,在剛發布的OpenStack Rocky版本中,它的功能變更如下:
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測試環境之前,需要先準備好被測試的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就會跳過,也就是忽略。
--成功: 測試代碼執行正常,也得到預期的測試結果。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。