RobotFrameWork(1) 關鍵字驅動測試框架


以前經常自己琢磨着寫測試框架,結果在真正投入使用后總發現有很多弊端,要么是難於維護,要么是不能適合大眾化,還可能發生這樣那個的BUG,由於短期投入產出不成正比,最后都作罷。

自動化還是需要團隊的力量,僅靠個人力量很難實現大規模的自動化,覆蓋面比較窄,很難看到成效。所以點點點還要繼續這是功能測試的宿命,但是自動化也還要繼續……因為我不想自己和自己的團隊永遠停留在點點點。

Robot Framework是一款python編寫的功能自動化測試框架。具備良好的可擴展性,支持關鍵字驅動,可以同時測試多種類型的客戶端web、android、ios、api的自動化測試通吃。還有它是開源滴。以上已基本包含我選擇的原因,還但是重點說一下。

python編寫

作為沒有開發經驗的測試什么語言比較上手,顯然python是個不錯的選擇。易於上手,代碼簡潔,無需編譯,封富的庫資源簡直是想干什么就干什么,而且Linux下面也能暢玩直接替一些繁瑣的shell。

開源

我們沒錢,我們就是喜歡開源,雖然我們暫時沒能開源組織貢獻什么,但用他們開源的軟件也算是對他們的一點支持吧。在些也感謝他們!

支持類型的客戶端

如今天大半邊天已經屬於移動互聯網,很顯然只支持傳統web測試的工具已經不能滿足我們需要,RF同時支持android、ios的功能測試,當然也能進行http,webservice等類型的api測試。

良好的可擴展性

RF本身就有豐富的測試庫資源,如selenium2library、RequestsLibrary、databaselibrary等,然后它也能支持自定義測試庫,RF提供多種方式定制測試庫,你也可以佣有自己的關鍵字庫了。(有點像Jmeter自定義插件)

關鍵字驅動

關鍵字驅動和數據驅動一直以來測試界都為怎么解釋和區別他們各持已見。我也不想為解釋他們花過多時間,因為它們都遵循了軟件測試的輸入輸出,但在這里我要說的是關於二者測試設計。請看下面兩圖

圖1為數據驅動,讀取測試數據,編寫測試步驟,判斷預期結果,中間的操作步驟可以是一個面向過程操作,只要確保步驟實現沒有錯誤,在業務沒有變化的情況下,要需要重點放在對測試數據的構建和維護上,而不是直接維護腳本,可以利用同樣的過程對不同的數據輸入進行測試。

但是一但業務發生變化,整個step步驟將面降大面積的修改,本來就種面向過程的代碼實現代碼量可能就偏大,此時對維護造成級大困難。

圖二中我們可以看出還是數據驅動,但發生了什么變化了,數據分為了局部數據和全局數據,每個步驟有自己的私有數據當然也可以沒有(有點像公全局變量和私有變量),所有的控制由關鍵字來完成。在維護上我們可以控制全局變量來控制一批CASE的測試結果,同時可以控制單個CASE的輸入數據。

另外在過程的維護上我們只需要維護執行這些控制步驟的關鍵字(對象),而不是大量的代碼語句。

仔細看來者更像一個是面向過程的軟件開發和面向對象的軟件開發,面向對象也是建立在面向過程的基礎之上的,這是IT進步的產特。就像爹生兒,兒子更優秀,沒有太多必要討論誰是誰,都是一家人。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM