- Robot Framework教程
- Robot Framework - 首頁
- Robot Framework - 概述
- 環境設定
- Unix和Linux安裝
- RIDE簡介
- 使用RIDE建立第一個測試用例
- 編寫和執行測試用例
- 關鍵字和資料驅動測試用例
- 使用Selenium庫操作瀏覽器
- 操作文字框
- 操作單選按鈕
- 操作複選框
- 操作下拉選單
- 使用關鍵字
- 使用變數
- 使用命令列
- 使用設定和拆卸
- 使用內建庫
- 使用外部資料庫庫
- 使用Robot Framework測試登入頁面
- Robot Framework有用資源
- Robot Framework - 快速指南
- Robot Framework - 有用資源
- Robot Framework - 討論
使用Robot Framework測試登入頁面
透過Robot Framework,我們已經學習了以下內容:
- 匯入庫
- 使用變數
- 建立自定義關鍵字
- 如何編寫測試用例
- 如何建立設定和拆卸
- 如何執行測試用例
- 如何使用資料驅動測試用例
在本節中,我們將使用以上所有功能來測試登入頁面。我們有一個登入頁面,它需要輸入電子郵件ID和密碼。當您輸入正確的電子郵件ID和密碼時,您將被重定向到歡迎頁面。如果使用者輸入無效的電子郵件ID或密碼,頁面將被重定向到錯誤頁面。
以下螢幕截圖顯示了一個登入頁面:
HTML程式碼
<html>
<head>
<title>Login Page</title>
</head>
<body>
<script type="text/javascript">
function wsSubmit() {
if (document.getElementById("email").value == "admin@gmail.com" && document.getElementById("passwd").value == "admin") {
location.href = "https:///robotframework/success.html";
} else {
location.href = "https:///robotframework/loginfailed.html";
}
}
</script>
<div id="formdet">
Email : <input type="text" id="email" value="" id="email" /><br/><br/>
Password : <input type="password" id="passwd" value="" /><br/><br/>
<input type="submit" id="btnsubmit" value="Submit" onClick="wsSubmit();"/>
</div>
</body>
</html>
當電子郵件ID或密碼無效時,將顯示以下螢幕:
HTML程式碼
<html>
<head>
<title>Login Failed</title>
</head>
<body>
<div id="loginfailed">
<h1>Login Failed</h1>
</div>
</body>
</html>
當電子郵件ID和密碼均有效時,將顯示以下螢幕:
HTML程式碼
<html>
<head>
<title>Login Successful</title>
</head>
<body>
<div id="loginfailed">
<h1>Login Successful</h1>
</div>
</body>
</html>
現在我們將為上述測試頁面編寫測試用例。首先,我們將執行開啟RIDE的命令。
命令
ride.py
完成後,我們將開始進行專案設定,如下所示:
點選“新建專案”並輸入專案名稱。
我們將專案的型別儲存為“目錄”。專案名稱為“testlogin”。
點選“確定”儲存專案。
現在,我們將在專案中建立測試套件。
點選“新建套件”,將顯示如下螢幕:
點選“確定”儲存測試套件。我們需要匯入Selenium庫,因為我們將使用瀏覽器。
在主專案和建立的測試套件中匯入庫。
點選上圖中的“庫”。點選“庫”後,將出現以下螢幕。
點選“確定”儲存專案的庫。
為專案儲存庫後,將在設定中顯示該庫:
對建立的測試套件重複相同的步驟。
以下是為測試套件新增的庫:
現在,在主專案中,我們將建立設定和拆卸。我們希望在Chrome瀏覽器中開啟登入頁面並最大化視窗。在拆卸中,我們將關閉瀏覽器。
對於設定,我們將建立一個名為“Open Login Page”的使用者定義關鍵字。此關鍵字將接收兩個引數,登入頁面URL和瀏覽器名稱。
現在,我們需要兩個標量變數來幫助我們儲存值——URL和瀏覽器名稱。
在RIDE中,建立兩個變數“${loginpage}”和“${browser}”,如下所示:
${loginpage}
${browser}
儲存這兩個變數。
變數將在您的專案下顯示如下:
現在,我們將為主專案新增設定和拆卸。
點選左側的專案。在設定中,點選“套件設定”。
我們建立了使用使用者關鍵字“Open Login Page”以及引數“${loginpage}”和“${browser}”的設定。
點選“確定”儲存設定。
現在,我們必須建立使用者定義關鍵字“Open Login Page”,方法如下:
右鍵點選專案,然後點選“新建使用者關鍵字”:
點選“新建使用者關鍵字”後,將出現以下螢幕:
這裡關鍵字接收兩個引數:“${loginpage}”和“${browser}”。點選“確定”儲存使用者關鍵字。
現在我們需要輸入庫關鍵字,這些關鍵字將開啟URL。
“Open Login Page”使用者定義關鍵字具有以下詳細資訊:
*** Keywords ***
Open Login Page
[Arguments] ${loginpage} ${browser}
Open Browser ${loginpage} ${browser}
Maximize Browser Window
Title Should Be Login Page
現在,我們將為套件建立“套件拆卸”。
點選“套件拆卸”的“編輯”,並輸入詳細資訊:
對於套件拆卸,我們直接使用庫關鍵字,它將關閉瀏覽器。點選“確定”儲存套件拆卸。
現在,點選我們建立的“Testlogin Suite”。
現在讓我們為測試套件建立設定——測試設定。此設定需要首先執行。
點選“測試設定”的“編輯”,並輸入詳細資訊。
對於測試設定,我們建立了名為“Login Page Display”的使用者定義關鍵字,它將接收“${loginpage}”作為引數,如上圖所示。
點選“確定”儲存測試設定。
現在,我們需要建立使用者關鍵字“Login Page Display”。
右鍵點選測試套件,然後點選“新建使用者關鍵字”,如下所示:
“新建使用者關鍵字”將顯示如下螢幕:
點選“確定”儲存關鍵字。
現在讓我們輸入使用者關鍵字“Login Page Display”所需的關鍵字。
這裡我們想要轉到“loginpage”並檢查頁面標題是否與給定的值匹配。
現在,我們將向測試套件新增模板並建立資料驅動測試用例。
要建立模板,請點選套件,然後在右側點選“測試模板”的“編輯”。
您將被定向到以下螢幕:
“Test Login”又是使用者定義的關鍵字。點選“確定”儲存模板。
在建立“Test Login”關鍵字之前,我們需要一些標量變數。標量變數將包含電子郵件ID、密碼、成功頁面、失敗頁面等的詳細資訊。
我們將為測試套件建立標量變數,如下所示:
我們建立了電子郵件、密碼、成功頁面和失敗頁面標量變數,如上圖所示。
現在,我們將建立“Test Login”使用者定義關鍵字。右鍵點選測試套件,然後點選“新建使用者關鍵字”。
點選“確定”儲存關鍵字。
以下螢幕截圖顯示了為“Test Login”輸入的關鍵字:
“Enter Email”、“Enter Password”、“Submit Details”和“Login Should Fail”是使用者定義的關鍵字,定義如下:
輸入電子郵件
輸入密碼
提交詳細資訊
登入應失敗
現在,我們將編寫測試用例,這些測試用例將把不同的電子郵件ID和密碼詳細資訊傳遞到建立的模板中。
以下列出了測試用例:
無效電子郵件ID測試用例
電子郵件傳遞的值為abcd@gmail.com,“${password}”是儲存在變數中的密碼。
無效密碼
無效電子郵件ID和密碼
空電子郵件ID
空密碼
空電子郵件和密碼
現在,我們完成了測試用例,可以執行它們了。
轉到“執行”選項卡,然後點選“開始”執行測試用例。
以下是測試用例的日誌訊息:
20181027 18:11:40.353 : INFO : Opening browser 'chrome' to base url ' https:///robotframework/login.html'. 20181027 18:11:45.960 : INFO : Page title is 'Login Page'. Starting test: Testlogin.Testlogin Suite.Invalid EmailId 20181027 18:11:45.991 : INFO : Opening url 'https:///robotframework/login.html' 20181027 18:11:46.169 : INFO : Page title is 'Login Page'. 20181027 18:11:46.180 : INFO : Typing text 'abcd@gmail.com' into text field 'email'. 20181027 18:11:46.706 : INFO : Typing text 'admin' into text field 'passwd'. 20181027 18:11:47.075 : INFO : Clicking button 'btnsubmit'. 20181027 18:11:47.565 : INFO : Current location is 'https:///robotframework/loginfailed.html'. 20181027 18:11:47.584 : INFO : Page title is 'Login Failed'. Ending test: Testlogin.Testlogin Suite.Invalid EmailId Starting test: Testlogin.Testlogin Suite.Invalid Password 20181027 18:11:47.600 : INFO : Opening url 'https:///robotframework/login.html' 20181027 18:11:47.767 : INFO : Page title is 'Login Page'. 20181027 18:11:47.783 : INFO : Typing text 'admin@gmail.com' into text field 'email'. 20181027 18:11:48.342 : INFO : Typing text 'invalid' into text field 'passwd'. 20181027 18:11:48.701 : INFO : Clicking button 'btnsubmit'. 20181027 18:11:49.035 : INFO : Current location is 'https:///robotframework/loginfailed.html'. 20181027 18:11:49.051 : INFO : Page title is 'Login Failed'. Ending test: Testlogin.Testlogin Suite.Invalid Password Starting test: Testlogin.Testlogin Suite.Invalid EmailId And Password 20181027 18:11:49.054 : INFO : Opening url 'https:///robotframework/login.html' 20181027 18:11:49.213 : INFO : Page title is 'Login Page'. 20181027 18:11:49.221 : INFO : Typing text 'invalid' into text field 'email'. 20181027 18:11:49.555 : INFO : Typing text 'invalid' into text field 'passwd'. 20181027 18:11:49.883 : INFO : Clicking button 'btnsubmit'. 20181027 18:11:50.162 : INFO : Current location is 'https:///robotframework/loginfailed.html'. 20181027 18:11:50.176 : INFO : Page title is 'Login Failed'. Ending test: Testlogin.Testlogin Suite.Invalid EmailId And Password Starting test: Testlogin.Testlogin Suite.Empty Emailid 20181027 18:11:50.188 : INFO : Opening url 'https:///robotframework/login.html' 20181027 18:11:50.302 : INFO : Page title is 'Login Page'. 20181027 18:11:50.306 : INFO : Typing text '' into text field 'email'. 20181027 18:11:50.486 : INFO : Typing text 'admin' into text field 'passwd'. 20181027 18:11:50.693 : INFO : Clicking button 'btnsubmit'. 20181027 18:11:50.935 : INFO : Current location is 'https:///robotframework/loginfailed.html'. 20181027 18:11:50.958 : INFO : Page title is 'Login Failed'. Ending test: Testlogin.Testlogin Suite.Empty Emailid Starting test: Testlogin.Testlogin Suite.Empty Password 20181027 18:11:50.958 : INFO : Opening url 'https:///robotframework/login.html' 20181027 18:11:51.063 : INFO : Page title is 'Login Page'. 20181027 18:11:51.071 : INFO : Typing text 'admin@gmail.com' into text field 'email'. 20181027 18:11:51.367 : INFO : Typing text '' into text field 'passwd'. 20181027 18:11:51.561 : INFO : Clicking button 'btnsubmit'. 20181027 18:11:51.796 : INFO : Current location is 'https:///robotframework/loginfailed.html'. 20181027 18:11:51.808 : INFO : Page title is 'Login Failed'. Ending test: Testlogin.Testlogin Suite.Empty Password Starting test: Testlogin.Testlogin Suite.Empty Email And Password 20181027 18:11:51.811 : INFO : Opening url 'https:///robotframework/login.html' 20181027 18:11:51.908 : INFO : Page title is 'Login Page'. 20181027 18:11:51.916 : INFO : Typing text '' into text field 'email'. 20181027 18:11:52.049 : INFO : Typing text '' into text field 'passwd'. 20181027 18:11:52.193 : INFO : Clicking button 'btnsubmit'. 20181027 18:11:52.419 : INFO : Current location is 'https:///robotframework/loginfailed.html'. 20181027 18:11:52.432 : INFO : Page title is 'Login Failed'. Ending test: Testlogin.Testlogin Suite.Empty Email And Password
結論
我們在這裡看到了如何使用不同的輸入測試登入頁面,這將驗證登入是否正常工作。日誌部分提供了執行過程的詳細資訊。