工具應用:Robot Framework->對Web頁面進行測試

實驗簡介

本節實驗主要為大家講解如何利用Robot Framework結合常用的關鍵字完成對Agileone系統中的「需求提案」模塊進行GUI級別的自動化測試腳本開發。

實驗目的

(1) 掌握RF的Selenium庫的常用關鍵字及用法。

(2) 能夠熟練運用Slenium庫來完成GUI級自動化測試腳本開發。

(3) 掌握在RF中對話框或確認框的處理方法。

實驗流程

  1. 實現Agileone的登錄與斷言

我們對上述腳本進行簡單的解釋:

(1) 第2行:Wait Until Element Is Enabled,等待某個元素可用,後面跟的是一個「ID」屬性為「username」的元素,無論這個元素是什麼類型。

(2) 第6行:Sleep 3s,這是RF內置庫的關鍵字,表示等待3秒鐘。

(3) 第7行:Page Should Contain Element,用於斷言,表示當前頁面中應該包含一個超鏈接且文本內容為「個人設定」。

通過關鍵字和對應的參數,我們可以看出,與我們直接用原生的代碼寫一個方法,並傳遞相應的參數是類似的。當然,由於我們在前面的實驗中已經知道如何使用Selenium IDE來進行簡單的測試腳本開發,所以對於RF的關鍵字驅動其實並不陌生,兩者唯一的區別是RF的功能更加強大,也獲得了更多的支持和更好的發展。

2. 需求提案的新增功能測試

在上述測試腳本中,我們看到了一些陌生的用法,現解釋如下:

(1) 第4行:「${random} Evaluate random.randint(10000,99999) random」,這行腳本的主要目的是利用RF的關鍵字「Evaluate」來調用Python的random庫中的方法randint()來生成一個5位數的隨機整數並賦值給變數${random},供後面的步驟中自動生成一條需求提案的標題和內容。

(2) 第5行:第三個參數「這是提案的標題-${random}」則是用於獲取上一行的${random}變數的值。

(3) 第6行:Execute JavaScript,事實上這跟WebDriver中執行JS腳本是一樣的用法。所以在此行腳本中,我們直接調用了Agileon中的在線HTML編輯器的JS函數:「setKEContent」來完成對內容的操作,也同時為大家演示如何利用關鍵字執行JS腳本。

(4) 第9行:在當前頁面中通過關鍵字「Get Text」獲取到ID屬性為「msg」的元素的文本,並賦值給變數${actual},用於後續步驟的斷言。

(5) 第10行:表示變數${actual}的期望結果應該包含「新增數據成功」這一段文本內容人,這是一個簡單的包含關係。當然,我們也可以使用關鍵字「Should Match」來設置正則表達式以適應更多的斷言檢查。

3. 刪除一條需求提案:

此處關於對話框或確認框的使用,與Selenium的早期版本Remote Control有非常類似之處。如果我們需要點擊對話框上的「確認」按鈕,則需要先調用關鍵字「Choose Ok On Next Confirmation「,當然,這也是默認設置。如果需要點擊對話框上的「取消」按鈕,則必須調用關鍵字「Choose Cancel On Next Confirmation」來完成設置,並在最後調用關鍵字「Confirm Action」即可。

4. 最終的RF腳本

*** Settings ***Library Selenium2Library*** Test Cases ***AgileonLogin [Documentation] 這是專門用於測試Agileone系統的登錄功能的腳本。 [Tags] Agileone # Agileone Open Browser http://localhost/agileone firefox Wait Until Element Is Enabled id=username Input Text id=username admin Input Text id=password admin Click Button id=login Sleep 3s 等待頁面載入完成 Page Should Contain Element link=個人設定AgileoneProposal Click Element link=※ 需求提案 ※ Sleep 3s Page Should Contain Element id=headline ${random} Evaluate random.randint(10000,99999) random Input Text id=headline 這是提案的標題-${random} Execute JavaScript setKEContent(content, 這是提案的內容-${random}); Click Button id=add Sleep 3s ${actual} Get Text id=msg Should Contain ${actual} 新增數據成功AgileoneDelete Choose Ok On Next Confirmation Click Element xpath=//label[@onclick=doDelete(this)] Confirm Action Sleep 5s Close Browser*** Keywords ***

思考練習

(1) 上述的腳本中是否還有值得改進的地方,請嘗試進行優化。

(2) 請基於上述腳本範例,完成對Agileone或其它系統的自動化測試開發。

:學習更多技術,觀看更多免費視頻,歡迎進入蝸牛學院官網 www.woniuxy.com

希望繼續在IT行業突破提升自己的各位朋友,歡迎加群384053806,不管你自我感覺牛不牛B。


推薦閱讀:

我是如何使用python來確定理財策略的
2018年3月9日測試精選
[軟體測試] 可測性分析和實踐
遇到這樣的HR,我們必須要懟他!
開發人員關於測試的總結

TAG:自動化測試 | RobotFramework | 軟體測試 |