RobotFramework 如何自行定義關鍵字

RobotFramework 如何自行定義關鍵字

Robot Framework 腳本的撰寫方式主要為關鍵字的方式

這篇文章主要討論透過自行定義關鍵字的方式來達到自動化測試

為什麼要自行定義關鍵字呢?

我們先看一個我們希望完成的腳本成果, 例如下列腳本範例, 我們用中文定義相關的操作步驟完成自動化測試

這樣整体的腳本不但容易閱讀, 而且測試報告結果也更好瞭解, 更接近於最終使用者與客戶看到的

測試流程

資源文件 testflow.robot

整個測試操作流程所需要的參數有四個  URL,  userName, Password,  驗證頁面文字 text

*** Settings ***
Resource Operations.robot
*** Keywords ***
登陸驗證流程
[Arguments] ${url} ${username} ${password} ${text}
打開瀏覽器             ${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 , 許多其他的自動化測試開發腳本也可以應用類似的架構
最大的好處是測試資料修改只要修改對應的用例,  流程的修改只要修改流程,  網頁元件更改只要修改元素層.

Leave a Reply

Your email address will not be published. Required fields are marked *