談到Robot Framework 分層的思想,就不得不提“關鍵字驅動”。
關鍵字驅動: 通過調用的關鍵字不同,從而引起測試結果的不同。
在上一節的selenium API 中所介紹的方法其實就是關鍵字,如“open browser” 就是一個關鍵字。從底層去看它就是一個通過編程去現實的一個方法。
def open_browser(url,browser): #通過browser找到相應的瀏覽器驅動,調用瀏覽器,借助python的httplib、urllib模塊將url傳遞給瀏覽器。從而實現open brwoser 的目的。
通過上面的偽代碼表述的“關鍵字”的底層其實還是程序定義的方法。
回到分層的思想上,在程序設計的講究設計模式,設計模式其實就是根據需求使用抽象與封裝,其實就是分層思想。把一個實現過程分成不同多層。提高的靈活性,從而達到可擴展性和可維護性。
再回到自動化的話題上,我們可以把操作步驟封裝一個一個的方法(關鍵字),通過調用關鍵字來實現測試用例。
http://www.cnblogs.com/fnng/p/3871712.html
參考本系列的第一節創建一條百度搜索的測試用例。
我現在要寫5條百度搜索的用例:
可以在Search測試套件下創建5條測試用例。其實對於每一條測試用例來說,只是搜索的內容不同,腳本步驟是完全一樣的。這樣做無疑增加的腳本的冗余,而且不便於維護。假如,百度輸入框的定位方式變了,我不得不打開每一條用例進行修改。
我們可以過創建關鍵字的方式,從而實現分層的思想來解決這個問題。
Robot Framework 關鍵字
1、創建資源
右鍵“測試項目”選擇“new resource”創建資源。
輸入資源名稱:
2、創建關鍵字
右鍵“業務關鍵字”選擇“new User Keyword” 來創建用戶關鍵字。
輸入關鍵字的名稱:
3、編輯關鍵字
分析:
對於一個測試用例來說,用戶關心的是輸入什么內容,得到什么結果。
所以,對於“百度搜索”關鍵字來說,需要創建兩個接口變量${search}和${result} 兩個變量,用於接收輸入內容和預期結果。
點擊Arguments輸入框,定義變量,多個變量從用“|”隔開。
在百度用戶中使用參數化變量。
4、添加創建的資源
切換到測試套件(Search)頁面,添加資源(業務關鍵字.txt)
5、調用關鍵字
現在就可以在測試用例中使用創建的關鍵字了(百度搜索)。
對於每一條用例來說,調用“百度搜索”關鍵字,輸入搜索內容,輸入預期結果即可。不同關心用例是如何執行的。如果百度輸入框的定位發生了變化,只用去修改“百度搜索”關鍵字即可,不用對每一條用例做任何修改。大大提高的用例的維護性和擴展性。
繼續分層的設計:
到此,Robot Framework +selenium 自動化測試粗獷的講完了。當然還有更多API 的使用,和細枝末節的設置沒有介紹。但我們已經可以拿它來開展自動化工作了。