寶寶心里苦,但是寶寶只能在這窮鄉僻壤說,下周又要開組會必須得干點事了。這次是做論文中的實驗部分,主要利用到了openstack中的自動化測試組件Tempest,具體原因不細說了。
安裝
分兩種安裝方法,一是直接使用devstack來安裝openstack,這樣的話tempest會自動由腳本安裝,直接使用非常方便,但是問題是你要能成功運行devstack,反正我是花了一兩天解決了無數遇到的問題才成功安裝成功並且馬上拍攝快照(機智如我)。第二種就是自己去搭(偽)分布式openstack並且自己安裝tempest,這個比較麻煩了,需要手動去下載tempest的git倉庫並且執行python setup.py,這里有一個寫的很好的文檔:http://www.ibm.com/developerworks/cn/cloud/library/1403_liuyu_openstacktempest/ IBM出品,必屬精品。
nose模塊
首先你需要安裝nose模塊,安裝過程如下:
pip install nose
或
easy_install nose
或
python setup.py install
我們假設你已經成功安裝了nose,那么建一個test文件夾,新建test.py,內容入下:
def Testfunc(): a=0 b=2 assert a==b
然后在目錄下執行nosetests,結果如下:
為什么只輸入nosetests會自動執行改目錄下的test.py並且執行里面的Testfunc函數,是因為nose會自動識別目錄中的測試用例,任何符合正則表達式(?:^|[b_.-])[Tt]est的類、函數、文件或目錄,以及TestCase的之類都會被識別並執行。
Tempest
運行及測試報告:
執行 tempest 所有測試用例
nosetests tempest
執行 tempest 某一個包下的所有測試用例,比如 identity 包下的所有測試用例
nosetests tempest/tests/identity
重啟devstack服務時,需要使用到screen -x命令,可能會遇到下面這個錯誤:
Cannot open your terminal '/dev/pts/0' - please check.
解決方法:
script /dev/null
然后就可以screen -x,接下來Ctr+a + 服務的編號,選擇想要重啟的服務,Ctr+c關閉服務,按一下↑鍵,執行這條命令,就完成了該服務的重啟。
執行 tempest 某一個測試用例,比如 identity 包下的 test_tenants.py
nosetests tempest/api/identity/admin/test_tenants.py