RobotFramework 如何自行定義關鍵字
Robot Framework 腳本的撰寫方式主要為關鍵字的方式
這篇文章主要討論透過自行定義關鍵字的方式來達到自動化測試
為什麼要自行定義關鍵字呢?
我們先看一個我們希望完成的腳本成果, 例如下列腳本範例, 我們用中文定義相關的操作步驟完成自動化測試
這樣整体的腳本不但容易閱讀, 而且測試報告結果也更好瞭解, 更接近於最終使用者與客戶看到的
測試流程
資源文件 testflow.robot
整個測試操作流程所需要的參數有四個 URL, userName, Password, 驗證頁面文字 text
|
元素層
那麼要如何定義這些中文關鍵字的背後操作呢?
定義資源文件 Operations.robot
Operations.robot
*** Settings *** | |
Library Selenium2Library | |
*** Keywords *** | |
打開瀏覽器 | |
[Arguments] ${url} | |
Open Browser ${url} ie | |
輸入使用者名稱 | |
[Arguments] ${username} | |
Input Text name=username_field ${username} | |
輸入密碼 | |
[Arguments] ${password} | |
Input Password name=password_field ${password} | |
點擊登入 | |
Click Button name=login_button | |
驗證頁面 | |
[Arguments] ${verText} | |
Page Should Contain ${verText} | |
關閉瀏覽器 | |
Close Browser |
測試用例層
最後, 我們只要設計相關的測試用例給予適當的測試參數就可以
*** Settings *** | |
Resource testflow.robot | |
*** Test Cases *** | |
Case1 | |
登陸驗證流程 http://demo.site/ user1 passwd1 登入成功 | |
Case2 | |
登陸驗證流程 http://demo.site/ user2 passwd2 登入失敗 |
Case3 | |
打開瀏覽器 http://demo.site/ | |
輸入使用者名稱 user3 | |
輸入密碼 passwd3 | |
點擊登入 | |
驗證頁面 登入成功 | |
關閉瀏覽器 | |
Case4 | |
打開瀏覽器 http://demo.site/ | |
輸入使用者名稱 user4 | |
輸入密碼 passwd4 | |
點擊登入 | |
驗證頁面 登入失敗 | |
關閉瀏覽器 |
分層測試用例技巧
到這裡我們已經完成了透過自定義的方式完成RobotFramework 測試,
除了讓測試步驟用我們自訂字的中文描述更容易閱讀之外,
另外就是我們可以透過這個方式將測試流程, 變數輸入, 分層定義處理
這個範例中我們定義三層
測試用例層 : 測試用例 case 1 , case 2…+ 測試輸入資料 user1, user2….
流程層: 打開瀏覽器 > 輸入使用者名稱 > …..
元素層 : 網頁元件操作定義 (name=username_field ) + 操作名稱定義 , Open Browser 定義成打開瀏覽器
這樣的自動化測試個案撰寫方式, 不僅僅適用於 RobotFramework , 許多其他的自動化測試開發腳本也可以應用類似的架構
最大的好處是測試資料修改只要修改對應的用例, 流程的修改只要修改流程, 網頁元件更改只要修改元素層.