我眼中的robot framework
由於近期公司需要,需要一個測試框架對於公司的服務做自動化測試。
由於服務的複雜性,人工測試的方式越來越複雜,體現在以下方面:
1.人工測試步驟複雜,容易出錯。服務的複雜性會使人工測試的準備工作,測試條件以及測試反饋都越來越複雜。
2.人工測試難以重複。隨著產品的迭代越來越快,人工測試需要不斷重複測試,此時人力投入成本很高。
自動化測試框架
優點
1.測試步驟自動化,不像人工測試那樣容易出錯。
2.測試步驟可以反覆進行,不需要或者很少需要人工介入。
3.測試步驟在介面等改變後,容易替換,因為其測試資料和測試步驟是分離。
缺點
1.測試自動化需要人編寫程式碼,初期投入較大。
2.測試自動化需要人維護以及測試其正確性,維護也需要成本。
在這個階段不得不新增自動化測試框架對於服務進行操作。我一個軟體研發工程師現在需要做測試開發工程的工作還是有點變扭。
robot framework簡介
robot framework是使用python語言寫的一種驗收測試和驗收測試驅動開發(ATDD)的自動化測試框架,這是一個跨平臺的自動化測試框架。由於robot framework的關鍵字以及測試套件特性。通過類似於函式一樣的關鍵字不僅可以實現複用和組合程式設計,而且還可以通過python語言實現的函式來靈活地實現自動化測試。
robot framework適用場景
1.用於單元測試,這是沒有問題的,一般單元測試中一般都是一步一步完成的
2.用於功能測試,這是沒有問題的,一般功能測試中一般都是一步一步完成的
3.用於整合測試,這時有不合適的地方,rf一般是順序執行的,但在整合測試中需要併發測試,這種測試需要加入寫入的併發關鍵字
robot framework使用心得
1.自定義庫
go test的函式呼叫gotest.py
1 class GOTest(object): 2 def __init__(self): 3 pass 4 def run(self,goPath,binPath):5 cmd = 'set GOPATH=' + goPath + ' && cd ' + binPath \ 6 + ' && go test -v' 7 res = os.popen(cmd) 8 if 'FAIL' in res: 9 return False 10 return True
robot framework的python庫__init__.py
1 from gotest import GOTest 2 3 class GOTEST(GOTest): 4 ROBOT_LIBRARY_SCOPE = 'GLOBAL'
將其放入python的第三方庫中就是Lib\site-packages。
通過robot framework建立資源的方式載入GOTEST庫,然後通過robot framework的關鍵字對函式run載入。
2.測試用例
測試用例中setup可以初始化,teardown哪怕在失敗時也會執行,編輯時可以使用關鍵字,如gotest | d:\\gotest | d:\\project。
3.測試套件
a.測試套件中setup可以初始化,teardown哪怕在失敗時也會執行,編輯時可以使用關鍵字,如gotest | d:\\gotest | d:\\project。
b.測試套件的setting中可以載入資源以及自定義庫。
4.使用命令列跑測試用例
pybot -T -o D:\\output D:\\testcase,這個命令schtasks /creat /tn 設定定時執行的名字 /tr “執行程式” /sc daily可以用於每日自動化用力執行
安裝robot framework步驟
1.安裝python
2.安裝robot framework
3.安裝wxPython
4.安裝ride,這是robot framework的圖形編輯介面