透過前兩篇的介紹後
相信已經對 Robot framework 有一定的認識了
所以我們將結合前一篇的 [Web 自動化] Robot framework 基本常見的 Keywords 用法及語法 內容,並修改優化 [Web 自動化] Robot framework 新手實作小專案,帶你快速進入自動化測試 的 code
這次我們增加一些限制,提高一點點的難度
*** Settings ***
Library Selenium2Library
Suite Setup Open Browser https://google.com chrome
Suite Teardown Close Browser
*** Variables ***
${userName1} 小明
${userName2} 小美
${userName3} 小華
*** Test Cases ***
Search Name And Verify Data
[Template] Seach Repeat
${userName1}
${userName2}
${userName3}
*** Keywords ***
Search Submit
[Arguments] ${name}
Wait Until Element Is Visible xpath=//div[@class="a4bIc"]/input
Input Text xpath=//div[@class="a4bIc"]/input ${name}
submit form
Back Google Index
Wait Until Element Is Visible id=logo
Click Link id=logo
Search Verify
[Arguments] ${name}
Wait Until Element Is Visible xpath=//div[@class="yuRUbf"]/a/h3
Element Should Contain xpath=//div[@class="yuRUbf"]/a/h3 ${name}
Get Element Attribute xpath=//div[@class="yuRUbf"]/a href
Seach Repeat
[Arguments] ${name}
Search Submit ${name}
Search Verify ${name}
Back Google Index
Settings、Variables、Keywords 每個區塊我就不再次介紹了,請往前看文章即可。
Search Submit //Keywords 為 搜尋並送出
[Arguments] ${name} //需要帶入一個 name 參數
Wait Until Element Is Visible xpath=//div[@class="a4bIc"]/input //等待 google 搜尋欄的元素出現
Input Text xpath=//div[@class="a4bIc"]/input ${name} //在 google 搜尋欄中輸入名字
submit form //送出表單
Back Google Index //Keywords 為 返回首頁
Wait Until Element Is Visible id=logo //等待左上角的 Logo 元素出現
Click Link id=logo //點擊左上角的 Logo 回到搜尋引擎首頁
Search Verify //Keywords 為 搜尋並驗證
[Arguments] ${name} //需要帶入一個 name 參數
Wait Until Element Is Visible xpath=//div[@class="yuRUbf"]/a/h3 //等待第一筆資料的元素欄位出現
Element Should Contain xpath=//div[@class="yuRUbf"]/a/h3 ${name} //第一筆資料需包含 name 參數值
Get Element Attribute xpath=//div[@class="yuRUbf"]/a href //取得第一筆資料的超連結
Keywords 組裝大集合,將會用到的 Keywords 組在一起,形成一個邏輯。
Seach Repeat //重複搜尋
[Arguments] ${name} //需要帶入一個 name 參數
Search Submit ${name} //搜尋並送出
Search Verify ${name} //搜尋並驗證
Back Google Index //返回首頁
撰寫 Test Case 並有效使用 Keywords 的方式,提高可讀性及維護性。
Search Name And Verify Data //Test Case 為 搜尋名字且驗證回傳正確
[Template] Seach Repeat //這是 Robot framework Template 寫法,功能有點類似 For,是會把透過下方的三個變數的輪流帶近 Seach Repeat 這個 Keywords 中分別驗證
${userName1}
${userName2}
${userName3}
整體寫下來後,其實還是可以持續優化的
Wait Until Element Is Visible
相關系列組成一個 keyword,這樣可以更彈性
XXXXXXX(keyword name)
[Arguments] ${value}
Wait Until Element Is Visible xpath=${xpath}
Click Button xpath=${xpath} ${value}
XXXXXXX(keyword name)
[Arguments] ${value}
Wait Until Element Is Visible xpath=${xpath}
Input Text xpath=${xpath} ${value}
也會發現因為 UI 測試因為要渲染前端,所以渲染過程中,會相對不穩定
通常就會很常使用 Wait Until Element Is Visible
的方式確保元件顯示後在動作
避免抓不到(or 等不到)元素而產生錯誤