使用Robot Framework測試登入頁面



透過Robot Framework,我們已經學習了以下內容:

  • 匯入庫
  • 使用變數
  • 建立自定義關鍵字
  • 如何編寫測試用例
  • 如何建立設定和拆卸
  • 如何執行測試用例
  • 如何使用資料驅動測試用例

在本節中,我們將使用以上所有功能來測試登入頁面。我們有一個登入頁面,它需要輸入電子郵件ID和密碼。當您輸入正確的電子郵件ID和密碼時,您將被重定向到歡迎頁面。如果使用者輸入無效的電子郵件ID或密碼,頁面將被重定向到錯誤頁面。

以下螢幕截圖顯示了一個登入頁面:

login page

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或密碼無效時,將顯示以下螢幕:

login password page

HTML程式碼

<html>
   <head> 
      <title>Login Failed</title>
   </head>
   <body>
      <div id="loginfailed">
         <h1>Login Failed</h1>
      </div>
   </body>
</html>

當電子郵件ID和密碼均有效時,將顯示以下螢幕:

email password page

HTML程式碼

<html>
   <head>
      <title>Login Successful</title>
   </head>
   <body>
      <div id="loginfailed">
         <h1>Login Successful</h1>
      </div>
   </body>
</html>

現在我們將為上述測試頁面編寫測試用例。首先,我們將執行開啟RIDE的命令。

命令

 
ride.py

完成後,我們將開始進行專案設定,如下所示:

project setup

點選“新建專案”並輸入專案名稱。

Name project setup

我們將專案的型別儲存為“目錄”。專案名稱為“testlogin”。

點選“確定”儲存專案。

現在,我們將在專案中建立測試套件。

test suite

點選“新建套件”,將顯示如下螢幕:

display suite

點選“確定”儲存測試套件。我們需要匯入Selenium庫,因為我們將使用瀏覽器。

在主專案和建立的測試套件中匯入庫。

created suite

點選上圖中的“庫”。點選“庫”後,將出現以下螢幕。

screen suite

點選“確定”儲存專案的庫。

為專案儲存庫後,將在設定中顯示該庫:

settings suite

對建立的測試套件重複相同的步驟。

以下是為測試套件新增的庫:

library suite

現在,在主專案中,我們將建立設定和拆卸。我們希望在Chrome瀏覽器中開啟登入頁面並最大化視窗。在拆卸中,我們將關閉瀏覽器。

對於設定,我們將建立一個名為“Open Login Page”的使用者定義關鍵字。此關鍵字將接收兩個引數,登入頁面URL和瀏覽器名稱。

現在,我們需要兩個標量變數來幫助我們儲存值——URL和瀏覽器名稱。

在RIDE中,建立兩個變數“${loginpage}”和“${browser}”,如下所示:

${loginpage}

loginpage

${browser}

browser

儲存這兩個變數。

變數將在您的專案下顯示如下:

Variables Displayed

現在,我們將為主專案新增設定和拆卸。

點選左側的專案。在設定中,點選“套件設定”。

Suite Setup

Suite Setup setting

我們建立了使用使用者關鍵字“Open Login Page”以及引數“${loginpage}”和“${browser}”的設定。

點選“確定”儲存設定。

現在,我們必須建立使用者定義關鍵字“Open Login Page”,方法如下:

右鍵點選專案,然後點選“新建使用者關鍵字”:

New User Keyword project

點選“新建使用者關鍵字”後,將出現以下螢幕:

New User Keyword appears

這裡關鍵字接收兩個引數:“${loginpage}”和“${browser}”。點選“確定”儲存使用者關鍵字。

New User Keyword arguments

現在我們需要輸入庫關鍵字,這些關鍵字將開啟URL。

New User Keyword library

“Open Login Page”使用者定義關鍵字具有以下詳細資訊:

*** Keywords ***
Open Login Page
   [Arguments] ${loginpage} ${browser}
   Open Browser ${loginpage} ${browser}
   Maximize Browser Window
   Title Should Be Login Page

現在,我們將為套件建立“套件拆卸”。

Suite Teardown

點選“套件拆卸”的“編輯”,並輸入詳細資訊:

Suite Teardown Details

對於套件拆卸,我們直接使用庫關鍵字,它將關閉瀏覽器。點選“確定”儲存套件拆卸。

現在,點選我們建立的“Testlogin Suite”。

Suite Teardown login

現在讓我們為測試套件建立設定——測試設定。此設定需要首先執行。

點選“測試設定”的“編輯”,並輸入詳細資訊。

Suite Teardown Setup

對於測試設定,我們建立了名為“Login Page Display”的使用者定義關鍵字,它將接收“${loginpage}”作為引數,如上圖所示。

點選“確定”儲存測試設定。

Suite Teardown save

現在,我們需要建立使用者關鍵字“Login Page Display”。

右鍵點選測試套件,然後點選“新建使用者關鍵字”,如下所示:

Suite Teardown click

“新建使用者關鍵字”將顯示如下螢幕:

Suite Teardown display

點選“確定”儲存關鍵字。

現在讓我們輸入使用者關鍵字“Login Page Display”所需的關鍵字。

Login Page Display

這裡我們想要轉到“loginpage”並檢查頁面標題是否與給定的值匹配。

現在,我們將向測試套件新增模板並建立資料驅動測試用例。

要建立模板,請點選套件,然後在右側點選“測試模板”的“編輯”。

data driven test cases

您將被定向到以下螢幕:

data driven directed

“Test Login”又是使用者定義的關鍵字。點選“確定”儲存模板。

在建立“Test Login”關鍵字之前,我們需要一些標量變數。標量變數將包含電子郵件ID、密碼、成功頁面、失敗頁面等的詳細資訊。

我們將為測試套件建立標量變數,如下所示:

scalar variables for test suite

我們建立了電子郵件、密碼、成功頁面和失敗頁面標量變數,如上圖所示。

現在,我們將建立“Test Login”使用者定義關鍵字。右鍵點選測試套件,然後點選“新建使用者關鍵字”。

Create Test Login

點選“確定”儲存關鍵字。

以下螢幕截圖顯示了為“Test Login”輸入的關鍵字:

Screenshot Test Login

“Enter Email”、“Enter Password”、“Submit Details”和“Login Should Fail”是使用者定義的關鍵字,定義如下:

Login Should Fail

輸入電子郵件

Enter Email

輸入密碼

Enter Password

提交詳細資訊

Submit Details

登入應失敗

Login Should Fails

現在,我們將編寫測試用例,這些測試用例將把不同的電子郵件ID和密碼詳細資訊傳遞到建立的模板中。

以下列出了測試用例:

password details

無效電子郵件ID測試用例

Invalid email

電子郵件傳遞的值為abcd@gmail.com,“${password}”是儲存在變數中的密碼。

無效密碼

Invalid Password

無效電子郵件ID和密碼

Invalid Passwords

空電子郵件ID

Empty Email Id

空密碼

Empty Email Id

空電子郵件和密碼

Empty Emails Id

現在,我們完成了測試用例,可以執行它們了。

轉到“執行”選項卡,然後點選“開始”執行測試用例。

Run Tab Execute

以下是測試用例的日誌訊息:

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

結論

我們在這裡看到了如何使用不同的輸入測試登入頁面,這將驗證登入是否正常工作。日誌部分提供了執行過程的詳細資訊。

廣告

© . All rights reserved.