Robot Framework 快速指南



Robot Framework - 概述

Robot Framework 是一個開源的測試自動化框架,用於驗收測試和驗收測試驅動開發。它遵循不同的測試用例風格——關鍵字驅動、行為驅動和資料驅動來編寫測試用例。Robot Framework 支援外部庫,這些庫是開源的,可用於自動化。最常用的庫是 Selenium 庫,用於 Web 開發和 UI 測試。

測試用例使用關鍵字樣式以表格格式編寫。您可以使用任何文字編輯器或 Robot 整合開發環境 (RIDE) 來編寫測試用例。

Robot Framework 可以在所有可用的作業系統上良好執行。該框架基於 Python 構建,並在 Jython (JVM) 和 IronPython (.NET) 上執行。

Robot Framework 特性

在本節中,我們將瞭解 Robot 提供的不同特性。

測試用例的表格格式

Robot Framework 使用簡單的表格格式,其中測試用例使用關鍵字編寫。對於新手開發者來說,很容易理解和編寫測試用例。

關鍵字

Robot Framework 自帶內建關鍵字,還提供來自 Selenium 庫(開啟瀏覽器、關閉瀏覽器、最大化瀏覽器等)的關鍵字。我們還可以建立使用者自定義關鍵字,它是其他使用者自定義關鍵字或內建或庫關鍵字的組合。我們還可以向這些關鍵字傳遞引數,這使得使用者自定義關鍵字類似於可以重複使用的函式。

變數

Robot Framework 支援標量、列表和字典變數。Robot Framework 中的變數易於使用,在編寫複雜的測試用例時非常有用。

Robot Framework 支援許多外部庫,例如 SeleniumLibrary、Database Library、FTP Library 和 http 庫。SeleniumLibrary 最常用,因為它有助於與瀏覽器互動,並有助於 Web 應用程式和 UI 測試。Robot Framework 還擁有自己的內建庫,用於處理字串、日期、數字等。

資源

Robot Framework 還允許匯入包含關鍵字的 robot 檔案,以便在測試用例中使用。資源非常易於使用,當我們需要使用為其他測試專案編寫的關鍵字時非常有用。

資料驅動測試用例

Robot Framework 支援關鍵字驅動式測試用例和資料驅動式測試用例。資料驅動式測試用例使用作為模板的高階關鍵字,測試用例用於與模板中定義的高階關鍵字共享資料。這使得使用不同的輸入測試 UI 變得非常容易。

測試用例標記

Robot Framework 允許標記測試用例,以便我們可以執行標記的測試用例或跳過標記的測試用例。當我們只想執行一組測試用例或跳過它們時,標記非常有用。

報告和日誌

Robot Framework 以報告和日誌的形式提供測試套件和測試用例執行的所有詳細資訊。測試用例的所有執行細節都可在日誌檔案中找到。提供了諸如測試用例是否透過或失敗、執行時間、執行測試用例所遵循的步驟等詳細資訊。

RIDE

Robot Framework 提供的這個編輯器有助於編寫和執行測試用例。該編輯器非常易於安裝和使用。RIDE 透過提供框架特定的程式碼補全、語法高亮等功能,簡化了測試用例的編寫工作。專案、測試套件、測試用例、關鍵字、變數的建立,庫的匯入,執行,測試用例的標記都可以在該編輯器中輕鬆完成。Robot Framework 還為 Eclipse、Sublime、Textmate、PyCharm 等提供了支援 Robot 測試用例的外掛。

Robot Framework 優點

Robot Framework 是開源的,任何想要嘗試的人都可以輕鬆做到。

  • 它非常易於安裝,有助於建立和執行測試用例。任何新手都可以輕鬆理解,不需要任何高階測試知識就可以開始使用 Robot Framework。

  • 它支援關鍵字驅動、行為驅動和資料驅動式的測試用例編寫。

  • 它對外部庫有良好的支援。最常用的庫是 Selenium Library,它易於在 Robot Framework 中安裝和使用。

Robot Framework 缺點

Robot 缺乏對 if-else 語句和巢狀迴圈的支援,而這些在程式碼變得複雜時是必需的。

結論

Robot Framework 是一個用於驗收測試和驗收測試驅動開發的開源測試自動化框架。Robot Framework 中的測試用例基於以表格格式編寫的關鍵字,這使得它清晰易讀,並傳達了有關測試用例意圖的正確資訊。例如,要開啟瀏覽器,使用的關鍵字是 “Open Browser”

Robot Framework - 環境搭建

Robot Framework 是使用 Python 構建的。在本章中,我們將學習如何設定 Robot Framework。要使用 Robot Framework,我們需要安裝以下內容:

  • Python
  • pip
  • Robot Framework
  • 用於 RIDE IDE 的 wxPython
  • Robot Framework RIDE

安裝 Python

要安裝 Python,請訪問 Python 官方網站:https://python.club.tw/downloads/ 並下載最新版本或您將使用的作業系統的先前版本的 Python(Windows、Linux/Unix、Mac 和 OS X)。

以下是 Python 下載網站的截圖:

Install Python

根據釋出日期,最新版本如下:

release dates

在下載 Python 之前,建議您透過在命令列中執行以下命令來檢查系統中是否已存在 Python:

Windows 安裝

python --version
Windows Installation

如果我們得到 Python 版本作為輸出,那麼我們的系統中已經安裝了 Python。否則,您將看到上面顯示的內容。

這裡,我們將下載 Python 2.7 版本,因為它與我們現在正在使用的 Windows 8 相容。下載完成後,透過雙擊 .exe Python 下載檔案來安裝 Python 到您的系統中。按照安裝步驟在您的系統上安裝 Python。安裝完成後,為了使 Python 在全域性可用,我們需要將路徑新增到 Windows 的環境變數中,如下所示:

設定 Windows 的路徑

右鍵單擊“我的電腦”圖示並選擇“屬性”。單擊“高階系統設定”,將顯示以下螢幕。

Setting path Windows

單擊上面突出顯示的環境變數按鈕,將顯示如下螢幕:

Environment Variables

選擇變數 Path 並單擊編輯按鈕。

Variable Path

獲取 Python 的安裝路徑,並在最後將相同的路徑新增到變數值中,如上所示。

完成此操作後,您可以檢查 Python 是否已從任何路徑或目錄安裝,如下所示:

Variable value

Robot Framework - Unix 和 Linux 安裝

現在讓我們看看在 Unix/Linux 機器上安裝 Python 的幾個簡單步驟。開啟 Web 瀏覽器並訪問 https://python.club.tw/downloads/

  • 按照連結下載適用於 Unix/Linux 的壓縮原始碼。
  • 下載並解壓檔案。
  • 如果您想自定義某些選項,請編輯 Modules/Setup 檔案。
  • 執行 ./configure 指令碼
  • make
  • make install

這會將 Python 安裝到標準位置/usr/local/bin,並將它的庫安裝到/usr/local/lib/pythonXX,其中 XX 是 Python 的版本。

在 Unix/Linux 上設定路徑

要在 Unix 中為特定會話新增 Python 目錄到路徑:

在 csh shell 中

鍵入 setenv PATH "$PATH:/usr/local/bin/python" 並按 Enter。

在 bash shell (Linux) 中

鍵入 export PATH="$PATH:/usr/local/bin/python" 並按 Enter。

在 sh 或 ksh shell 中

鍵入 PATH="$PATH:/usr/local/bin/python" 並按 Enter。

注意 - /usr/local/bin/python 是 Python 目錄的路徑

安裝 PIP

現在,我們將檢查下一步,即 Python 的 pip 安裝。PIP 是一個用於安裝 Python 模組的包管理器。

PIP 會與 Python 一起安裝,您可以在命令列中檢查如下:

命令

pip --version
Install PIP

這裡我們仍然沒有得到 pip 的版本。我們需要將 pip 路徑新增到環境變數中,以便我們可以全域性使用它。PIP 將安裝在 Python 的 Scripts 資料夾中,如下所示:

installed Scripts

返回環境變數並向變數列表新增 pip 的路徑。將 C:\Python27\SCripts 新增到環境變數中,如下所示:

environment variables Ex

現在開啟您的命令列並檢查安裝的 pip 版本:

command line

所以現在,我們已經安裝了 Python 和 pip。

安裝 Robot Framework

我們現在將使用 pip(Python 包管理器)來安裝 Robot Framework,其命令如下:

命令

pip install robotframework
Install Robot Framework

安裝完成後,您可以檢查已安裝的 Robot Framework 版本,如下所示:

命令

robot --version
framework installed

因此,我們可以看到已安裝 Robot Framework 3.0.4。

安裝 wxPython

我們需要 wxPython 用於 Robot Framework RIDE,這是一個 Robot Framework 的 IDE。

對於 Windows,要獲取所需的 wxPython 下載,請訪問以下網址:

https://sourceforge.net/projects/wxpython/files/wxPython/2.8.12.1/

並根據您的 Windows 作業系統下載 32 位或 64 位的 wxpython。

Install wxPython

下載 32 位 wxPython 並安裝。

bit wxPython

安裝完成後,它會開啟命令列並自動執行一些命令,如下所示:

bit wxPython Ex

wxPython 現在已安裝。此模組是使用 Robot Framework 的下一個步驟 RIDE IDE 所必需的。

在 Linux 上,您應該能夠使用您的包管理器安裝 wxPython。例如,在基於 Debian 的系統(如 Ubuntu)上執行 sudo apt-get install pythonwxgtk2.8 就足夠了。

在 OS X 上

,您應該使用從 wxPython 下載頁面找到的 wxPython 二進位制檔案。wxPython2.8 只有 32 位版本可用,因此 Python 也必須在 32 位模式下執行。這可以透過全域性執行來完成

> defaults write com.apple.versioner.python Prefer-32-Bit -bool yes

或者,僅用於 RIDE 執行:

> VERSIONER_PYTHON_PREFER_32_BIT=yes ride.py

安裝 RIDE

RIDE 是 Robot Framework IDE。我們可以使用 pip 來安裝它,如下所示。

命令

pip install robotframework-ride
Install Ride

安裝完成後,開啟命令提示符並輸入以下命令開啟Ride-IDE。

命令

ride.py

上述命令將開啟IDE,如下所示:

Ride-IDE

因此,我們完成了Robot Framework的安裝,可以開始使用它了。

結論

現在我們知道了如何安裝python、pip、robot framework,以及安裝RIDE來處理robot framework中的測試用例。

Robot Framework - RIDE簡介

RIDE是Robot Framework的測試編輯器。接下來,我們將在RIDE中編寫測試用例。要啟動RIDE,我們需要執行以下命令。

命令

ride.py
Robot Framework Testing

上述命令將開啟IDE,如下截圖所示:

Robot Framework IDE

在本章中,我們將瀏覽編輯器,瞭解IDE中可用的選項和功能。這些選項和功能將幫助我們測試專案。

建立新專案

轉到“檔案”,然後單擊“新建專案”,如下所示:

Create New Project

單擊“新建專案”後,將出現以下螢幕。

Create New Project Ex

輸入專案名稱。“建立路徑”是專案將儲存到的路徑。如有需要,可以更改位置。專案可以儲存為檔案或目錄。您也可以使用ROBOT、TXT、TSV或HTML等格式儲存專案。在本教程中,我們將使用ROBOT格式,以及如何編寫和執行測試用例。

現在,我們將按照以下所示方式新增一個檔案型別的專案。專案命名為“Testing”,建立專案後將出現以下螢幕。

test cases

專案名稱顯示在左側,右側可以看到三個選項卡:“編輯”、“文字編輯”和“執行”。

“編輯”選項卡在UI上有很多選項,如上所示。在本節中,我們可以新增執行測試用例所需的資料。我們可以匯入庫、資源、變數,新增標量、新增列表、新增字典和新增元資料。

在“編輯”部分新增的詳細資訊將在下一個選項卡“文字編輯”中顯示。您可以在“文字編輯”部分編寫程式碼。

Edit section

如果在“文字編輯”中添加了任何更改,它將顯示在“編輯”部分。因此,“編輯”和“文字編輯”這兩個選項卡是相互依賴的,所做的更改將在兩者中都顯示。

測試用例準備就緒後,我們可以使用第三個選項卡“執行”來執行它們。

Third Tab Run

“執行”UI如上所示。它允許執行測試用例,並提供啟動、停止、暫停、繼續、下一個測試用例、單步執行等選項。您還可以為正在執行的測試用例建立報告和日誌。

要建立測試用例,我們需要執行以下操作:

右鍵單擊建立的專案,然後單擊“新建測試用例”,如下所示:

project created

單擊“新建測試用例”後,將出現如下所示的螢幕:

New Test Case

輸入測試用例的名稱,然後單擊確定。我們將測試用例儲存為TC0。儲存測試用例後,將出現以下螢幕。

New Test Case Ex

測試用例具有文件、設定、拆卸、標籤、超時和模板等選項。它們都有一個編輯按鈕;單擊該按鈕後,將出現一個螢幕,您可以在其中輸入每個選項的詳細資訊。我們將在後續章節中討論這些詳細資訊的各種引數。

測試用例可以以表格格式編寫,如下所示。Robot Framework測試用例是基於關鍵字的,我們可以使用內建關鍵字或從庫中匯入的關鍵字來編寫測試用例。我們還可以在Robot Framework中建立使用者自定義關鍵字、變數等。

導航欄中提供了執行/停止測試用例的快捷鍵,如下所示:

user defined keyword

搜尋關鍵字選項可按如下螢幕截圖所示使用:

screenshot

要獲取Robot Framework提供的關鍵字列表,只需在表格格式中按Ctrl+空格鍵,如下所示,它將顯示所有可用的關鍵字:

list of keywords

如果您記不住關鍵字,這將幫助您獲取詳細資訊。我們提供了每個關鍵字的詳細資訊。詳細資訊還顯示瞭如何使用相關的關鍵字。在下一章中,我們將學習如何在RIDE中建立我們的第一個測試用例。

結論

在本章中,我們瞭解了RIDE提供的功能。我們還學習瞭如何建立和執行測試用例。

Robot Framework - 使用RIDE建立第一個測試用例

我們將探索RIDE並處理我們的第一個測試用例。

從命令提示符開啟RIDE,或者您可以在桌面上建立RIDE的快捷方式。

從命令列

ride.py

從桌面

轉到安裝RIDE的路徑;對於Windows,它是C:\Python27\Scripts

From Desktop

右鍵單擊ride.py,然後單擊傳送到 -> 桌面(建立快捷方式)。

Send Desktop

您現在將在桌面上看到RIDE的圖示。您可以單擊它以開啟RIDE編輯器。

讓我們從RIDE中的第一個測試用例開始。開啟編輯器,然後單擊“檔案” -> “新建專案”。

First Test Case

單擊新建專案並輸入專案名稱。

New Project

父目錄是專案將儲存到的路徑。如有需要,可以更改路徑。我建立了一個名為robotframework的資料夾,並將所有檔案儲存在該資料夾中。

Parent Directory

專案FirstTestCase已建立。

要建立測試用例,請右鍵單擊該專案。

right click

單擊新建測試用例

New Test Case Exx

輸入測試用例的名稱,然後單擊確定。

name the test case

為建立的測試用例顯示了三個選項卡:編輯、文字編輯和執行

“編輯”選項卡有兩種格式:設定和表格。我們將在後續章節中討論這兩種格式。

設定格式

在“設定”中,我們有文件、設定、拆卸、標籤、超時和模板。

文件

您可以新增有關測試用例的詳細資訊,以便將來參考。

Documentation

單擊確定儲存文件。

設定和拆卸

如果為測試用例分配了設定,則將在測試用例執行之前執行它,而將在測試用例完成後執行拆卸。我們將在後續章節中詳細介紹這一點。現在我們的第一個測試用例不需要它,可以保持為空。

標籤

這用於標記測試用例——包含或排除特定測試用例。您還可以指定任何測試用例是否關鍵。

超時

這用於為測試用例設定超時。我們現在將其保留為空。

模板

這將包含要用於測試用例的關鍵字。它主要用於資料驅動的測試用例。高階使用者定義關鍵字在模板中指定,測試用例用於將資料傳遞給關鍵字。

在表格格式中,我們將編寫我們的第一個測試用例並執行它以檢視輸出。

在這個測試用例中,我們只需要新增一些日誌並檢視它的輸出。請參考以下螢幕截圖以瞭解這一點:

tabular format

我們使用了關鍵字Log來記錄訊息,如上所示。

根據在“編輯”中指定的關鍵字,我們可以在“文字編輯”中獲取如下所示的程式碼:

keywords specified

您也可以在“文字編輯”中編寫測試用例,這將反映在表格格式中。現在讓我們執行測試用例並檢視輸出。

要執行測試用例,我們需要單擊“啟動”,如下所示:

reflect tabular format

單擊“啟動”,以下是測試用例的輸出:

output

我們的測試用例已成功執行,詳細資訊如上所示。它將狀態顯示為PASS

我們還可以在報告和日誌中檢視測試用例執行的詳細資訊,如下所示。

case execution

單擊“報告”,它將在新選項卡中開啟詳細資訊,如下所示

case Report

在“報告”中,它提供了諸如開始時間、結束時間、日誌檔案路徑、測試用例狀態等詳細資訊。

單擊報告右上角或“執行”螢幕上的“日誌”。

以下是日誌檔案的詳細資訊:

log file

日誌檔案提供了測試執行的詳細資訊以及我們為測試用例提供的關鍵字的詳細資訊。

在報告和日誌檔案中,狀態為綠色。

現在讓我們進行一些更改,這將導致測試用例失敗,並檢視輸出。

log output

在上述測試用例中,Log關鍵字是錯誤的。我們將執行測試用例並檢視輸出:

log keyword

我們看到測試用例失敗了。我已經突出顯示了它關於測試用例的錯誤。

現在我們將檢視報告和日誌輸出。從報告:

log output Report

從日誌

From Log

測試用例失敗時,顏色將更改為紅色,如上所示。

結論

在本章中,我們介紹了一個簡單的測試用例,並顯示了執行期間看到的結果。報告和日誌顯示了測試用例執行的詳細資訊。

編寫和執行測試用例

在本章中,我們將學習如何編寫和執行測試用例。本章將涵蓋以下方面:

  • 專案設定
  • 匯入庫
  • 以表格格式編寫測試用例
  • 使用標籤執行測試用例
  • 使用資原始檔進行測試用例

專案設定

執行命令ride.py以啟動RIDE IDE。

命令

ride.py
Project Setup

單擊檔案 -> 新建專案,如下所示:

New Project Setup

單擊“新建專案”後,將出現如下所示的螢幕:

Project Setup screen

“新建專案”顯示型別為檔案或目錄。預設情況下,選擇“檔案”。我們將單擊“目錄”以建立測試套件,該目錄可以在該目錄中包含許多測試套件。每個套件都將包含測試用例。

我們現在將使用ROBOT格式。

ROBOT format

父目錄是將建立WritingTestCases目錄的路徑。單擊“確定”儲存測試套件目錄。

Writing Test Cases

右鍵單擊建立的目錄,然後單擊新建套件。您還可以使用測試套件建立子目錄。

現在,我們將從建立測試套件開始,如下所示:

Test Suite creation

Add Suite creation

單擊“確定”儲存測試套件。

現在您可以將測試用例新增到套件中。右鍵單擊建立的測試套件,如下所示:

Save Test suite

單擊新建測試用例。它將顯示一個螢幕,用於新增測試用例的名稱,如下所示:

display screen

單擊“確定”儲存測試用例。我們的專案設定已準備就緒。

匯入庫

Robot Framework有自己的內建庫,無需匯入。但是我們需要與瀏覽器、資料庫等進行互動。為了互動,我們需要匯入庫。

Robot Framework支援的外部庫列表在Robot Framework官方網站上列出,如下所示:

Importing Libraries

為了使用瀏覽器和Web應用程式,我們將匯入Selenium庫。安裝方法在使用Selenium庫處理瀏覽器章節中進行了討論。

要匯入庫,我們需要單擊主專案。在右側,“設定”將顯示“新增匯入”選項,如下所示:

Import library

單擊“庫”,然後輸入庫的名稱,如下所示:

Name Library

單擊“確定”儲存庫。

設定將如下所示顯示在設定中:

displayed

我們需要重複相同的步驟,併為建立的測試套件新增庫。單擊建立的測試套件,並按如下所示匯入庫:

suite created

當您單擊左側的測試用例時,它將顯示錶格格式,您可以在其中輸入關鍵字。現在,您可以使用內建關鍵字和 Selenium 庫中提供的關鍵字。

以表格格式編寫測試用例

這是一個簡單的測試用例,它在 Chrome 瀏覽器中開啟 URL。

Write test

以下是測試用例的詳細資訊:

*** Settings ***
Library SeleniumLibrary

*** Test Cases ***
TC1
   Open Browser https://tutorialspoint.tw/ chrome
   Maximize Browser Window
   Close Browser

我們將在此專案中新增另一個測試用例:TC2。

same project
*** Settings ***
Library SeleniumLibrary

*** Variables ***
${number} 100

*** Test Cases ***
TC1
   Open Browser https://tutorialspoint.tw/ chrome
   Maximize Browser Window
   Close Browser

TC2
   ${a} Set Variable Hi
   Log ${a}
   ${b} Set Variable If ${number}>0 Yes No
   Log ${b}

我們可以在建立的測試套件下新增多個測試用例。單擊“執行”以執行測試用例。執行將根據新增的測試用例數量進行:

multiple test cases

使用標籤執行測試用例

如果您只想執行測試用例 TC2,您可以對其進行標記。單擊測試用例,然後單擊“標籤”旁邊的“編輯”,如下所示:

Executing Test Case

單擊“確定”儲存標籤。在“執行”中新增標籤名稱,如下所示:

tag name

我們選擇了選項 -> **僅執行具有這些標籤的測試**並在其中添加了標籤名稱。現在,它將只執行具有標籤名稱的那些測試用例。您可以隨意命名,並根據標籤名稱對測試用例進行分組並執行。您還可以使用標籤跳過測試用例。

added tag name

現在,我們可以看到執行時只有 TC2 執行。

使用資原始檔進行測試用例

Robot Framework 提供了資源選項,您可以在其中匯入要與測試用例一起使用的 Robot 檔案。

我們建立的測試用例 TC1 使用以下關鍵字:

Resource Files

我們使用了以下關鍵字:

  • 開啟瀏覽器 (Open Browser)
  • 最大化瀏覽器視窗 (Maximize Browser Window)
  • 關閉瀏覽器 (Close Browser)

我們將為上述測試用例使用使用者自定義關鍵字。使用者自定義關鍵字將在用作資源的 Robot 檔案中可用。

我們將在同一目錄中建立一個檔案,並按如下所示編寫我們的關鍵字:

請注意關鍵字的詳細資訊,即如何在《Robot Framework - 使用關鍵字》一章中解釋如何建立使用者自定義關鍵字。

我們在 browseropen.robot 檔案中建立了一個名為 **Test Browser** 的使用者自定義關鍵字:

*** Settings ***
Library SeleniumLibrary

*** Variables ***
${url} https://tutorialspoint.tw/
${browser} chrome

*** Keywords ***
Test Browser
   Open Browser ${url} ${browser}
   Maximize Browser Window

該檔案包含各種選項,例如設定、變數和關鍵字。請注意,我們不能在用作資源的檔案中編寫測試用例。我們將按如下所示將上述檔案上傳為測試套件的資源。

選擇測試套件。在左側,單擊資源選項,如下所示:

resource option

單擊“資源”,它將要求您提供匯入 Robot 檔案的路徑:

import robot file

提及檔案儲存的路徑(如上所示),然後單擊“確定”以新增資源。它將顯示如下:

add resource

現在,我們將更改測試用例 TC1,其關鍵字如下所示:

change test

我們將從資原始檔,即 Test Browser 關鍵字,向 TC1 新增使用者自定義關鍵字:

Test Browser

上傳的資原始檔如下所示:

file uploaded

使用者自定義關鍵字已在測試用例 TC1 中使用。

我們現在將執行測試用例:

execute test case

我們的兩個測試用例都已透過。現在讓我們檢視報告和日誌詳細資訊。

報告 (Report)

Report test case

日誌 (Log)

Log test case

結論

本章詳細介紹瞭如何編寫測試用例、執行測試用例、如何標記測試用例、使用資源等。

關鍵字和資料驅動測試用例

可以使用關鍵字或資料驅動方式測試測試用例的工作流程。如果您想使用不同的輸入來測試工作流程,可以使用資料驅動測試用例來完成。我們將透過一個示例來介紹以下測試用例方法:

  • 關鍵字驅動式 (Keyword Driven style)
  • 資料驅動式 (Data Driven style)

關鍵字驅動式

我們將進行專案設定以展示關鍵字驅動式的工作方式。

使用命令列中的 **ride.py** 開啟 RIDE。

Keyword Driven Style

單擊“新建專案”,併為您的專案命名。

Keyword Driven Style Ex

專案名稱為 *keywordstyle*。單擊“確定”儲存專案。在此專案中,我們將建立一個使用者關鍵字,如下所示。

右鍵單擊專案名稱,然後單擊 *新建使用者關鍵字*,如下所示

New User Keyword

它將顯示如下螢幕:

display screen Ex

輸入關鍵字的名稱及其將接受的引數。這裡我們將關鍵字命名為 Display Message。Display Message 關鍵字的作用是,當它被呼叫時,它將記錄一條訊息。因此,我們需要為它提供一個引數。因此,在上例中,引數將是一個標量變數 ${msg}。

log message

單擊“確定”儲存使用者關鍵字。現在我們需要編寫關鍵字需要執行的操作。因此,它將具有如下所示的表格格式,我們可以在其中提供 Robot Framework 提供的庫關鍵字或內建關鍵字。

這裡,我們將使用 Robot Framework 提供的簡單 Log 關鍵字,如下所示:

log keyword Ex

要獲取 Robot Framework 提供的更多關鍵字,請在表格列中按 Ctrl + 空格鍵,如下所示:

table column

因此,我們要與測試用例一起使用的關鍵字已準備就緒。使用者關鍵字的名稱為 *Display Message*,它接受一個名為 **${msg}** 的引數。

現在讓我們在簡單的關鍵字驅動式測試用例中使用此關鍵字。為此,我們需要建立測試用例。右鍵單擊建立的專案名稱。現在,單擊“新建測試用例”:

keyword driven

simple keyword

為測試用例命名,然後單擊“確定”。

我們完成了專案設定,現在將為關鍵字驅動式編寫測試用例。

在測試用例中,我們在表格格式中使用了使用者自定義關鍵字 Display Message,如下所示:

user defined keyword Ex

我們使用瞭如上所示建立的關鍵字,並傳遞了值 Hello World。

我們將執行測試用例 TC1 並檢查輸出:

execute test case Ex

在上例中,我們編寫了一個簡單的測試用例,該測試用例記錄訊息,並且測試用例已執行,輸出為 *Hello World*。我們可以看到日誌中列印的輸出 Hello World。測試用例也已透過。

資料驅動式

我們將在同一專案中建立另一個測試用例。我們將測試用例命名為 TC2。

more test case

要使用資料驅動式,我們需要建立模板。模板將採用高階關鍵字的名稱,這是一個使用者自定義關鍵字,例如我們一開始建立的名為 Display Message 的關鍵字。傳遞給該模板的引數將以測試用例的形式傳送。我們可以向該模板關鍵字傳遞不同的值。當您想使用不同的資料來測試場景時,通常會使用資料驅動方法。

儲存測試用例後。單擊測試用例,顯示將如下所示:

data driven style

單擊模板的“編輯”按鈕並新增使用者自定義關鍵字。

Edit button

輸入模板的使用者關鍵字,然後單擊“確定”儲存模板。

user keyword

*Display Message* 關鍵字接受一個名為 ${msg} 的引數。這是一個標量變數。在此測試用例中傳遞的詳細資訊將作為使用者自定義關鍵字 Display Message 的引數。

keyword Display Message

在 TC2 中,我們添加了模板 Display Message(使用者自定義關鍵字)。我們在表格格式中提供了訊息。

現在讓我們執行測試用例。

Template Display Message

我們可以看到“執行”執行了兩個測試用例。TC1 顯示的輸出為 Hello World。這是我們提供給使用者關鍵字 Display Message 的訊息。

對於 TC2,我們使用 Display Message 作為模板。我們在 TC2 中傳遞了 *My First Test Case* 和 *Testing Template* 作為值。由於使用者關鍵字 Display Message 在內部使用 Log 關鍵字,因此它會在日誌中顯示訊息,如上所示。

結論

我們在本章中使用了關鍵字樣式和資料驅動樣式,並看到了兩者的工作方式。資料驅動樣式將高階使用者自定義關鍵字作為模板,所有測試用例都作為模板的值。

使用 Selenium 庫操作瀏覽器

在本章中,我們將學習如何在 RIDE 中使用 Robot Framework 和 Selenium 庫來處理瀏覽器。

  • 在 RIDE 中進行專案設定
  • 匯入 Selenium 庫
  • 使用 Chrome 瀏覽器的測試用例
  • 使用 Firefox 瀏覽器的測試用例

在 RIDE 中進行專案設定

我們首先在 RIDE 中建立一個專案來處理瀏覽器。使用命令列中的 ride.py 開啟 RIDE。

Project Setup In Ride

單擊 *新建專案* 併為您的專案命名。

give name your project

給定的名稱為 BrowserTestCases。單擊“確定”儲存專案。右鍵單擊建立的專案名稱,然後單擊 *新建測試用例*:

Browser Test Cases

Browser Test Cases Ex

為測試用例命名,然後單擊“確定”。

Give name

我們完成了專案設定。現在,我們將為瀏覽器編寫測試用例。

匯入 Selenium 庫

要使用瀏覽器,我們需要在 Robot 中匯入 Selenium 庫。我們可以按如下方式執行此操作:

訪問 https://robotframework.org/

Import Selenium Library

在左側,選擇庫選項 (LIBRARIES)。

LIBRARIES option

從上面選擇“外部”選項,它將列出所有可用的庫。

External option

單擊 SeleniumLibrary。

您將被重定向到如下所示的 GitHub 倉庫:

github repo

要安裝 seleniumlibrary,我們可以使用 GitHub 中的命令並使用 pip 進行安裝。

命令

pip install --upgrade robotframework-seleniumlibrary
selenium library

Selenium 庫安裝在 Python 的 lib 資料夾中,如下所示:

library gets installed

安裝完成後,我們必須按如下步驟在 RIDE 中匯入庫。

單擊左側的專案,然後從“新增匯入”中使用“庫”:

Add Import

單擊“庫”後,將出現一個螢幕,您需要在其中輸入庫名稱:

clicking Library

單擊“確定”,庫將顯示在設定中。

displayed settings

給定的名稱必須與安裝在 site-packages 中的資料夾名稱匹配。如果名稱不匹配,庫名稱將顯示為紅色,如下所示:

site packages

紅色的庫匯入與庫在 Python 中不存在一樣。現在,我們已完成 Selenium 庫的匯入。

使用 Chrome 瀏覽器的測試用例

要在 Robot 中使用 Chrome 瀏覽器,我們首先需要安裝 Chrome 驅動程式才能與 Selenium 一起使用。驅動程式可在 Selenium 網站上找到:https://www.seleniumhq.org/

Chrome Browser

單擊如上截圖所示的 *下載 Selenium*。

在下載部分,轉到 *並非 seleniumhq 開發的第三方瀏覽器驅動程式*,然後選擇 Google Chrome 驅動程式,如下所示突出顯示的部分

download section

這裡列出了各種瀏覽器可用的驅動程式。對於 Chrome,請點選 Google Chrome 驅動程式並根據您的作業系統下載最新驅動程式。

Chrome Driver

點選最新版本。它將根據作業系統顯示下載內容——Windows、Linux 和 Mac。

operating system

從以上列表中下載適合您作業系統的版本。它會下載一個 zip 檔案。檔案下載完成後,解壓縮它並將 .exe 驅動程式檔案複製到 python 資料夾。

我們將檔案複製到C:\Python27\Scripts

zip file

現在我們已經完成了 Chrome 驅動程式的安裝。我們可以開始編寫開啟和關閉瀏覽器的測試用例了。

返回 Ride 並輸入開啟瀏覽器的關鍵字。

Ride 使用其內建工具幫助您使用關鍵字。輸入命令並按下ctrl+空格鍵。您將獲得如下所示的命令的所有詳細資訊

ctrl spacebar

它提供了命令的詳細資訊以及使用方法示例。在測試用例中,我們將在 Chrome 中開啟網站https://tutorialspoint.tw/,測試用例詳細資訊如下:

ctrl spacebar Ex

現在讓我們執行這個測試用例來看看輸出:

run test case

run test case Ex

測試用例已透過;我們可以看到該網站已在 Chrome 瀏覽器中開啟。

我們將新增更多測試用例,如下所示:

test case passed
  • 開啟瀏覽器 - URL - 在 Chrome 瀏覽器中開啟https://tutorialspoint.tw/

  • 捕獲頁面螢幕截圖 - 圖片名稱為 page.png

  • 關閉瀏覽器

以下是上面執行的測試用例的報告和日誌詳細資訊。

報告 (Report)

test cases executed

日誌 (Log)

test cases executed Log

日誌中的測試用例詳細資訊

test cases log

test cases log Ex

test cases log Exs

使用 Firefox 瀏覽器的測試用例

安裝 Firefox 驅動程式並將其儲存到 python 指令碼資料夾。

Firefox 的測試用例

for Firefox

for Firefox Ex

結論

我們已經瞭解瞭如何在 Robot Framework 中安裝 Selenium 庫和瀏覽器驅動程式以與瀏覽器一起工作。使用 Selenium 庫關鍵字,我們可以在瀏覽器中開啟任何給定的連結並與其進行互動。測試用例執行的詳細資訊以報告和日誌的形式提供,其中給出了執行時間。

Robot Framework - 使用文字框

對於測試,瞭解如何與瀏覽器互動並定位 HTML 元素非常重要。使用 Robot Framework 操作輸入欄位非常容易。在本章中,我們將學習如何使用 Selenium 庫操作文字框。要操作輸入欄位 - 文字框,我們需要定位器,它是該文字框的主要唯一識別符號,它可以是 id、name、class 等。

在本章中,我們將討論以下方面:

  • 文字框測試的專案設定
  • 在搜尋文字框中輸入資料
  • 點選搜尋按鈕

文字框測試的專案設定

我們首先在 RIDE 中建立一個專案來處理瀏覽器。使用命令列中的 ride.py 開啟 RIDE。

Textbox Testing

點選新建專案並輸入專案的名稱,如下所示。

Textbox Testing Ex

專案名稱為Textbox。單擊“確定”儲存專案。右鍵單擊建立的專案名稱,然後單擊新建測試用例

project created Ex

 New project created Ex

命名您的測試用例並單擊“確定”進行儲存。現在我們完成了專案設定。接下來,我們將為文字框編寫測試用例。由於我們需要 Selenium 庫,因此我們需要在專案中匯入它。

單擊左側的專案,然後從“新增匯入”中使用“庫”。

Library Add Import

單擊“庫”後,將出現一個螢幕,您需要在其中輸入庫名稱:

clicking Library Ex

單擊“確定”,庫將顯示在設定中。

clicking Library Exs

給定的名稱必須與安裝在 site-packages 中的資料夾名稱匹配。

如果名稱不匹配,庫名稱將顯示為紅色,如下面的螢幕截圖所示:

screenshot Ex

在文字框中輸入資料

現在我們將編寫測試用例。測試用例詳細資訊如下:

要使用文字框,我們需要一個定位器。定位器是文字框的識別符號,例如 id、name、class 等。例如,如果您使用的是:

  • 文字框的name屬性,它必須是 name - Nameofthetextbox 或 name=Nameofthetextbox

  • 文字框的id,它將是 id:idoftextbox 或 id=idoftextbox

  • 文字框的class,它將是 class - classfortextbox 或 class=classfortextbox

現在,我們將在 Ride 中新增文字框測試用例的詳細資訊。以下是為文字框測試用例輸入的關鍵字:

keywords entered
  • 開啟瀏覽器 - 該關鍵字為給定的 URL 和指定的瀏覽器開啟瀏覽器。

  • 輸入文字 - 此關鍵字適用於輸入型別,並將查詢網站https://tutorialspoint.tw/上的定位器 name:search,而 angularjs 是我們要在文字框中輸入的值。

  • 點選按鈕 用於點選具有位置 class:gsc-search-button-v2 的按鈕。

我們現在將執行相同的操作:

Click button

單擊搜尋圖示後,將出現如下面的螢幕截圖所示的螢幕:

Search icon

現在讓我們檢視報告和日誌詳細資訊:

報告 (Report)

log details

日誌 (Log)

log details Ex

log details Exs

結論

我們已經瞭解瞭如何在 Robot Framework 中使用 Selenium 庫與文字框進行互動。使用 Robot Framework 提供的關鍵字和匯入的庫,我們可以定位文字框並輸入資料並進行測試。

Robot Framework - 使用單選按鈕

對於測試,瞭解如何與瀏覽器互動並定位 HTML 元素非常重要。使用 Robot Framework 操作輸入欄位非常容易。在本章中,我們將學習如何使用 Selenium 庫操作單選按鈕。要操作單選按鈕,我們需要定位器 - 該單選按鈕的主要唯一識別符號。

我們將在此處討論以下內容:

  • 單選按鈕測試的專案設定
  • 單選按鈕測試用例

單選按鈕測試的專案設定

我們首先在 RIDE 中建立一個專案來處理瀏覽器。使用命令列中的 ride.py 開啟 RIDE。

Radio Button Testing

點選新建專案並輸入專案的名稱,如下面的螢幕截圖所示。

Radio Button Testing Name

給定的名稱是 RadioButton。單擊“確定”按鈕儲存專案。

右鍵單擊建立的專案名稱,然後單擊新建測試用例

Radio Button Testing Name New

Radio Button Testing Name News

為測試用例命名並單擊“確定”進行儲存。我們完成了專案設定,現在將為單選按鈕編寫測試用例。由於我們需要 Selenium 庫,因此我們需要在專案中匯入它。

單擊左側的專案,然後從新增匯入中使用

left side Library

單擊“庫”後,將出現一個螢幕,您需要在其中輸入庫名稱:

Upon clicking Library

單擊“確定”,庫將顯示在設定中。

Upon clicking Library displayed

給定的名稱必須與安裝在 site-packages 中的資料夾名稱匹配。如果名稱不匹配,它將顯示為紅色,如下所示:

site packages

單選按鈕測試用例

單選按鈕測試用例將使用定位器選擇一個單選按鈕。

考慮以下單選按鈕的 HTML 顯示:

<input type="radio" name="gender" value="male" checked> Male<br/>
<input type="radio" name="gender" value="female"> Female<br/>

對於單選按鈕,name 是定位器。在上面的示例中,namegender。我們還需要值,以便我們可以選擇所需的單選按鈕。上面示例中的值是

現在,我們將建立一個帶有單選按鈕的測試頁面,並在瀏覽器中開啟它。現在,選擇單選按鈕的值。測試用例詳細資訊如下:

  • 開啟瀏覽器 - URL - 在 Chrome 中開啟https:///robotframework/radiobutton.html

  • 輸入單選按鈕的詳細資訊

  • 執行測試用例

在編寫測試用例的關鍵字時,按 Ctrl + 空格鍵。您將獲得命令的詳細資訊。單選按鈕的詳細資訊

Details of Radio button

對於單選按鈕,引數是組名和值。以下是單選按鈕選擇測試用例的詳細資訊:

Arguments of Radio button

以下是單選按鈕的測試頁面:

Test Page of Radio button

Radiobutton.html 的 HTML 程式碼

<html>
   <head>
      <title>Radio Button</title>
   </head>
   <body>
      <form name="myform" method="POST">
         <b>Select Gender?</b>
         <div><br/>
            <input type="radio" name="gender" value="male" checked> Male<br/>
            <input type="radio" name="gender" value="female"> Female<br/>
         </div>
      </form>
   </body>
</html>

在上面的表單中,我們計劃選擇 female,它是一個單選按鈕。名稱和值在測試用例中給出。現在,我們將執行測試用例並檢查上面表單中複選框的選擇。

讓我們執行測試用例並檢視瀏覽器中的顯示:

execute the test case

執行測試用例時,它將開啟 URL https:///robotframework/radiobutton.html 並選擇 Female 單選按鈕,我們在測試用例中給出了它的名稱和值。

以下是 Ride 中的執行詳細資訊:

execution details in Ride

現在讓我們檢視報告和日誌以瞭解更多詳細資訊。

報告詳細資訊

Report Details

日誌詳細資訊

Log Details Radio

測試用例的詳細資訊

Details of test cases

結論

我們已經瞭解瞭如何透過向測試用例提供單選按鈕的組名來選擇單選按鈕的值。使用 Robot Framework 提供的關鍵字和匯入的庫,我們可以定位單選按鈕並選擇單選按鈕的值。我們確實可以使用 Robot Framework 日誌和報告獲得執行的測試用例的詳細資訊。

Robot Framework - 使用複選框

對於測試,瞭解如何與瀏覽器互動並定位 HTML 元素非常重要。使用 Robot Framework 操作輸入欄位非常容易。在本章中,我們將學習如何使用 Selenium 庫操作複選框。要操作複選框,我們需要定位器,它是該複選框的主要唯一識別符號。定位器可以是 id、name、class 等。

複選框測試的專案設定

我們首先將在 Ride 中建立一個專案來處理瀏覽器。使用命令列中的ride.py開啟 Ride。

Checkbox Testing

點選新建專案並輸入專案的名稱,如下面的螢幕截圖所示。

Checkbox Testing Screenshot

專案名稱為 Checkbox。單擊“確定”儲存專案。

右鍵單擊建立的專案名稱,然後單擊新建測試用例

Checkbox Testing Test Case

Checkbox Testing Test Case Ex

為測試用例命名並單擊“確定”。我們完成了專案設定。現在我們將為複選框編寫測試用例。由於我們需要 Selenium 庫,因此我們需要在專案中匯入它。

單擊左側的專案,然後從新增匯入中使用

Checkbox Testing Library

現在,單擊“庫”。將出現一個螢幕,您需要在其中輸入庫名稱:

Checkbox Testing Appear

單擊“確定”,庫將顯示在設定中。

Checkbox Testing Displayed

給定的名稱必須與安裝在 site-packages 中的資料夾名稱匹配。如果名稱不匹配,庫名稱將顯示為紅色:

Checkbox Testing site packages

複選框測試用例

在測試用例中,我們將選擇複選框。要選擇複選框,我們需要識別符號定位器。

現在考慮以下複選框的 HTML 顯示:

<input type="checkbox" name="option1" value="Car"> Car

對於複選框,我們有name作為定位器。在上面的示例中,nameoption1。我們還需要值以便我們可以選擇它。Car 在上面的示例中儲存值。

現在,我們將建立一個帶有複選框的測試頁面。在瀏覽器中打開復選框並選擇值。

測試用例詳細資訊如下:

  • 開啟瀏覽器 - URL - 在 Chrome 中開啟https:///robotframework/checkbox.html

  • 輸入複選框的詳細資訊。

  • 執行測試用例。

在編寫測試用例的關鍵字時,按 Ctrl + 空格鍵。它提供命令的所有詳細資訊。複選框的詳細資訊。

要用於複選框的關鍵字是:

Select checkbox name:nameofcheckbox value

來自 Ride 的命令詳細資訊如下:

Name of Checkbox

因此,引數是複選框的定位器。以下是複選框選擇測試用例的詳細資訊:

Checkbox selection

URL 的顯示方式如下:

Checkbox URL

checkbox.html

<html>
   <head>
      <title>Checkbox Test Page>/title>
   </head>
   <body>
      <form name="myform" method="POST">
         <b>How would you like to travel?</b>
         <div><br>
            <input type="checkbox" name="option1" value="Car"> Car<br>
            <input type="checkbox" name="option2" value="Bus"> Bus<br>
            <input type="checkbox" name="option3" value="Train"> Train<br>
            <input type="checkbox" name="option4" value="Air"> Airways<br>
            <br>
         </div>
      </form>
   </body>
</html>

在上面的表單中,我們計劃選擇 Car,它是一個複選框。詳細資訊在測試用例中給出。現在,我們將執行測試用例並檢查上面表單中複選框的選擇。

Checkbox planning

執行測試用例時,它將開啟URL **https:///robotframework/checkbox.html** 並選中測試用例中指定的名稱“Car”。

以下是執行細節:

Checkbox execution

報告詳情

Checkbox Report

Checkbox test log

日誌詳情

Checkbox Details log

結論

本章我們學習瞭如何透過提供複選框的定位器來選中複選框。日誌和報告提供了測試用例執行的詳細資訊,以及每個測試用例所花費的時間。

Robot Framework - 使用下拉列表

本章我們將學習如何使用Selenium庫操作下拉列表。

下拉列表測試的專案設定

首先,我們將在RIDE中建立一個專案來與瀏覽器互動。使用命令列中的ride.py開啟RIDE:

Dropdown Testing

點選新建專案併為您的專案命名。

Dropdown New Project

專案名稱為dropdown。點選確定儲存專案。

右鍵單擊建立的專案名稱,然後點選新建測試用例

Dropdown New Test Case

Dropdown New Test Case Ex

為測試用例命名,然後點選確定儲存。

專案設定完成。現在,我們將為下拉列表編寫測試用例。由於我們需要Selenium庫,我們需要在專案中匯入它。

點選左側的專案,然後使用新增匯入中的,如下所示:

Dropdown Add Import

現在,點選。將出現一個螢幕,您需要在其中輸入庫名稱:

Dropdown Library

點選確定,庫將顯示在設定中。

Dropdown Displayed

給定的名稱必須與安裝在 site-packages 中的資料夾名稱匹配。

如果名稱不匹配,庫名稱將顯示為紅色:

Dropdown site packages

庫匯入顯示紅色意味著庫在python中不存在。所以現在我們完成了selenium庫的匯入。

下拉列表測試用例

下拉列表的測試用例將從下拉列表中選擇值。為此,我們需要該下拉列表的定位器(識別符號)。

考慮以下下拉列表的HTML顯示:

<select name = "carbrand">
   <option value = "">Select car brand..</option>
   <option value = "audi">AUDI</option>
   <option value = "bmw">BMW</option>
   <option value = "chevrolet">CHEVROLET</option>
   <option value = "datsun">DATSUN</option>
</select>

對於下拉列表,name定位器。在上面的示例中,namecarbrand。我們還需要值,以便我們可以選擇它。上面的示例中的值是:audi、bmw、chevrolet和datsun

現在,我們將建立一個包含下拉列表的測試頁面,在瀏覽器中開啟它,然後從下拉列表中選擇值。

測試用例詳細資訊如下:

  • 在Chrome瀏覽器中開啟瀏覽器URL:**https:///robotframework/dropdown.html**

  • 輸入下拉列表的詳細資訊

  • 執行測試用例

在RIDE中編寫測試用例的關鍵字時,按Ctrl +空格鍵。這將顯示命令的所有詳細資訊。

對於下拉列表,我們有三種方法:

  • 按索引選擇列表項
  • 按標籤選擇列表項
  • 按值選擇列表項

我們將透過一個示例來演示以上所有情況。

在我們的測試頁面中,我們將建立3個下拉列表,並使用上述測試用例按索引、標籤和值選擇下拉列表。

dropdown.html

<html>
   <head>
      <title>Dropdown</title>
   </head>
   <body>
      <form name="myform" method="POST">
         <div>
            Dropdown By Index:
            <select name = "months">
               <option value = "">Select Months.</option>
               <option value = "Jan">January</option>
               <option value = "Feb">February</option>
               <option value = "Mar">March</option>
               <option value = "Apr">April</option>
               <option value = "May">May</option>
               <option value = "Jun">June</option>
               <option value = "Jul">July</option>
               <option value = "Aug">August</option>
               <option value = "Sept">September</option>
               <option value = "Oct">October</option>
               <option value = "Nov">November</option>
               <option value = "Dec">December</option>
            </select>
         </div>
         <br/>
         <br/>
         <div>
            Dropdown By Label:
            <select name = "days">
               <option value = "">Select Day..</option>
               <option value = "01">01</option>
               <option value = "02">02</option>
               <option value = "03">03</option>
               <option value = "04">04</option>
               <option value = "05">05</option>
               <option value = "06">06</option>
               <option value = "07">07</option>
               <option value = "08">08</option>
               <option value = "09">09</option>
               <option value = "10">10</option>
               <option value = "11">11</option>
               <option value = "12">12</option>
               <option value = "13">13</option>
               <option value = "14">14</option>
               <option value = "15">15</option>
               <option value = "16">16</option>
               <option value = "17">17</option>
               <option value = "18">18</option>
               <option value = "19">19</option>
               <option value = "20">20</option>
               <option value = "21">21</option>
               <option value = "22">22</option>
               <option value = "23">23</option>
               <option value = "24">24</option>
               <option value = "25">25</option>
               <option value = "26">26</option>
               <option value = "27">27</option>
               <option value = "28">28</option>
               <option value = "29">29</option>
               <option value = "30">30</option>
               <option value = "31">31</option>
            </select>
         </div>
         <br/>
         <br/>
         <div>
            Dropdown By Value:
            <select name = "year">
               <option value = "">Select year..</option>
               <option value = "0">2000</option>
               <option value = "1">2001</option>
               <option value = "2">2002</option>
               <option value = "3">2003</option>
               <option value = "4">2004</option>
               <option value = "5">2005</option>
               <option value = "6">2006</option>
               <option value = "7">2007</option>
               <option value = "8">2008</option>
               <option value = "9">2009</option>
               <option value = "10">2010</option>
               <option value = "11">2011</option>
               <option value = "12">2012</option>
               <option value = "13">2013</option>
               <option value = "14">2014</option>
               <option value = "15">2015</option>
               <option value = "16">2016</option>
               <option value = "17">2017</option>
               <option value = "18">2018</option>
            </select>
         </div>
      </form>
   </body>
</html>
Dropdown example

我們將在RIDE中為所有3個下拉列表選擇新增測試用例。

對於索引,我們需要傳遞該下拉列表的定位器——name或id,以及需要選擇的元素的索引。

按索引選擇列表項 - 示例

<select name = "months">
   <option value = "">Select Months.</option> // index 0
   <option value = "Jan">January</option> //index 1
   <option value = "Feb">February</option> // index 2
   <option value = "Mar">March</option> // index 3
   <option value = "Apr">April</option> // index 4
   <option value = "May">May</option> // index 5
   <option value = "Jun">June</option> // index 6
   <option value = "Jul">July</option> // index 7
   <option value = "Aug">August</option> // index 8
   <option value = "Sept">September</option> //index 9
   <option value = "Oct">October</option> //index 10
   <option value = "Nov">November</option> //index 11
   <option value = "Dec">December</option> // index 12
</select>

現在,我們想選擇月份為五月,所以測試用例中要提供的索引是5。

標籤是在螢幕上開啟下拉列表時看到的。

Dropdown screen

如果您想選擇一天,您可以從下拉列表中選擇。

按值選擇列表項

這是年份列表。列表的值從0到18。

<select name = "year">
   <option value = "">Select year..</option>
   <option value = "0">2000</option>
   <option value = "1">2001</option>
   <option value = "2">2002</option>
   <option value = "3">2003</option>
   <option value = "4">2004</option>
   <option value = "5">2005</option>
   <option value = "6">2006</option>
   <option value = "7">2007</option>
   <option value = "8">2008</option>
   <option value = "9">2009</option>
   <option value = "10">2010</option>
   <option value = "11">2011</option>
   <option value = "12">2012</option>
   <option value = "13">2013</option>
   <option value = "14">2014</option>
   <option value = "15">2015</option>
   <option value = "16">2016</option>
   <option value = "17">2017</option>
   <option value = "18">2018</option>
</select>

如果您想選擇任何年份,請取與年份對應的值,並將其新增到測試用例中。例如,如果您想選擇2017年,則值為17。

以下是測試用例的最終列表:

Dropdown test cases

執行後,以下是根據測試用例對下拉列表進行的選擇:

Dropdown selection

執行詳情

Dropdown Execution Details

報告詳細資訊

Dropdown Report Details

日誌詳細資訊

Dropdown Log Details

日誌中的測試用例詳情

Dropdown Test case Details

結論

我們已經看到了如何按值、索引和標籤操作下拉列表。我們可以參考日誌和報告來獲取已執行測試用例的詳細資訊。

Robot Framework - 使用關鍵字

在Robot Framework中,測試用例是使用關鍵字在測試用例表中構建的。本章將介紹Robot Framework中使用的關鍵字的詳細資訊。Robot中使用兩種型別的關鍵字:

  • 庫關鍵字
  • 使用者自定義關鍵字

庫關鍵字

庫關鍵字是我們匯入到Robot Framework中的庫提供的關鍵字。現在我們將看看Selenium庫,它幫助我們與瀏覽器互動。我們將討論一些與Selenium庫相關的重要的關鍵字。

請按照以下步驟匯入Selenium庫:

與Selenium庫安裝相關的詳細資訊在“使用Selenium庫操作瀏覽器”一章中討論。使用命令列中的ride.py開啟RIDE。

Library Keywords

點選新建專案併為您的專案命名。專案名稱為**LibraryKeywords**。

右鍵單擊建立的專案名稱,然後單擊新建測試用例

Library New Test Case

Library New Test Case Ex

為測試用例命名,然後點選確定。

專案設定完成。現在,我們將編寫測試用例來演示庫關鍵字的工作原理。由於我們需要Selenium庫,我們需要在專案中匯入它。

點選左側的專案,然後點選庫。

Library project

單擊“庫”後,將出現一個螢幕,您需要在其中輸入庫名稱:

Library name

單擊“確定”,庫將顯示在設定中。

Library displayed

給定的名稱必須與安裝在 site-packages 中的資料夾名稱匹配。

現在將在建立的專案中建立測試用例並使用一些重要的關鍵字。

點選建立的測試用例TC1,並在表格形式中輸入開啟瀏覽器並在開啟的表單中輸入資料的關鍵字。

這是一個使用庫關鍵字的簡單測試用例:

Library simple

要獲得此關鍵字的更多詳細資訊,在鍵入關鍵字時按ctrl +空格鍵。它將顯示輸入的庫關鍵字的詳細資訊。

這是一個關於開啟瀏覽器的示例,如果您需要該關鍵字的任何幫助,您可以在鍵入關鍵字時使用ctrl +空格鍵。

開啟瀏覽器關鍵字詳情

Open Browser Keyword Details

同樣,我們有庫關鍵字來處理輸入、單選按鈕、文字等。

Library keywords List

Library keywords List Input

我們將執行我們輸入的測試用例,以使用URL開啟瀏覽器:https://tutorialspoint.tw/並在輸入文字中輸入詳細資訊。

Library keywords List Input Text

我們已經執行了測試用例。您可以看到文字框包含我們在測試用例中提供的所有詳細資訊。

使用者自定義關鍵字

可以建立使用者自定義關鍵字來執行測試用例中的特定操作,也可以使用Robot Framework中的庫關鍵字和內建關鍵字來建立。

我們將使用上面建立的相同專案,在其中建立使用者自定義關鍵字並在測試用例中使用。

要在RIDE中建立關鍵字,請右鍵單擊您的專案,然後點選新建使用者關鍵字,如下所示:

User-defined Keywords

點選新建使用者關鍵字後,將出現如下所示的螢幕:

New User Keyword screen

輸入關鍵字的名稱,然後點選確定。螢幕還顯示引數。我們將在後續部分討論引數與關鍵字的關係。

New User Keyword subsequent

我們已將關鍵字名稱命名為BrowserDetails。點選確定儲存。已建立關鍵字BrowserDetails。

New User Keyword Details

要測試瀏覽器中的URL,我們必須重複輸入開啟瀏覽器、**最大化瀏覽器**關鍵字。

現在,我們將建立一個使用者自定義關鍵字,其中包含開啟瀏覽器最大化瀏覽器詳細資訊。建立的關鍵字將在我們的測試用例中使用。

New User Keyword test case.

我們的BrowserDetails關鍵字是重複使用的其他關鍵字的組合。

現在,我們將如下所示在測試用例中使用建立的關鍵字。

測試用例

New User test case.

考慮到上述測試用例,我們將使用使用者自定義關鍵字BrowserDetails

現在,我們將用使用者自定義關鍵字替換1和2個關鍵字:

New User test case Ex.

現在讓我們執行測試用例以檢視輸出:

Library keywords List Input Text

測試用例的執行完美無缺。

現在,我們將瞭解關鍵字中引數的用法。

這是我們建立的關鍵字:

Library keywords created

關鍵字的名稱是BrowserDetails。我們可以在專案下建立的其他測試用例中使用此關鍵字。該關鍵字包含硬編碼的瀏覽器URL。如果我們想在另一個具有不同URL的測試用例中使用該關鍵字,則這是不可能的。

我們可以使用引數來幫助我們處理硬編碼引數。我們將返回到建立的關鍵字並使用引數。

Library keywords created arguments

點選引數旁邊的編輯。

Library keywords against

輸入要與關鍵字一起使用的引數。

Library keywords argument

如果有多個引數,可以使用管道符號(|)分隔它們。現在,我們將如下所示在關鍵字中使用引數:

Library keywords specified

返回您的測試用例。現在,您需要傳遞要用於測試用例的值,即URL。

在測試用例中,當您鍵入使用者自定義關鍵字並按Ctrl +空格鍵時,它將顯示關鍵字以及引數的詳細資訊。

以下是關鍵字BrowserDetails的詳細資訊:

Library keywords Browser

測試用例現在將具有作為引數傳遞的URL。

Library keywords  passed

現在讓我們執行測試用例以檢視輸出:

Library keywords List Input Text

傳遞給使用者自定義關鍵字的關鍵字和引數執行良好。

現在讓我們更改URL;我們將使用https://www.google.com/

Library keywords change url

關鍵字BrowserDetails的URL已更改為https://www.google.com/

我們將輸入文字的引數更改為google網站上提供的id。要獲取輸入欄位的id、name或class,您可以在瀏覽器中檢查。

讓我們執行上述測試用例並檢視輸出。

成功執行後,上述測試用例將生成以下輸出:

Library keywords google

結論

在本章中,我們學習瞭如何獲取內建關鍵字的幫助。我們還學習瞭如何建立使用者自定義關鍵字,它可以是庫關鍵字和內建關鍵字的組合。

Robot Framework - 使用變數

本章將討論如何在Robot Framework中建立和使用變數。變數用於儲存值,這些值可用於測試用例、使用者自定義關鍵字等。

我們將討論Robot Framework中可用的以下變數:

  • 標量變數
  • 列表變數
  • 字典變數

我們將藉助RIDE中的測試用例來了解每個變數的工作原理。

標量變數

標量變數將被它們分配的值替換。標量變數的語法如下:

${variablename}

我們可以使用標量變數來儲存字串、物件、列表等。我們首先建立一個簡單的測試用例,並在其中使用標量變數。

在命令列中使用**ride.py**開啟RIDE並建立一個新專案。

Scalar Variable

點選新建專案

現在,為您的專案命名。

Scalar Variable project

名稱為variables。點選確定儲存專案。

右鍵單擊建立的專案名稱,然後單擊新建測試用例

Scalar Variable New Test Case

Scalar Variable New Test Case Ex

為測試用例命名,然後點選確定。

專案設定已完成,現在我們將編寫用於測試用例的標量變數的測試用例。由於我們需要Selenium庫,我們需要在專案中匯入它。

單擊左側的專案,然後從“新增匯入”中使用“庫”:

Scalar Variable Add Import

單擊“庫”後,將出現一個螢幕,您需要在其中輸入庫名稱:

Scalar Variable library

單擊“確定”,庫將顯示在設定中。

Scalar Variable displayed

給定的名稱必須與安裝在 site-packages 中的資料夾名稱匹配。

如果名稱不匹配,庫名稱將顯示為紅色 -

Scalar Variable displayed

標量變數測試用例

在上面的測試用例中,我們硬編碼了值,例如URL、電子郵件、密碼,這些值提供給測試用例。可以使用變數儲存使用值,而不是硬編碼,我們可以在這些地方使用變數。

Scalar Variable displayed

要建立標量變數,請右鍵單擊您的專案,然後單擊新建標量,如下所示 -

Test Case Scalar Variable Ex

單擊“新建標量”將開啟以下螢幕,用於建立變數以及在測試用例中使用變數時需要替換的值。

我們在“名稱”欄位中獲得${}。

Scalar Variable field

在這裡,我們需要在花括號內輸入變數的名稱,如下面的螢幕所示 -

Scalar Variable screen

變數的名稱是${url}。其值為 - https:///robotframework/login.html

我們添加了如上所示的註釋。單擊“確定”儲存標量變數。變數的詳細資訊將如下所示新增 -

Scalar Variable comment

變數名稱顯示在建立的專案下,如下所示 -

Scalar Variable created

現在讓我們在測試用例中使用建立的標量變數。

使用硬編碼URL的測試用例

Scalar Variable hardcoded

在上面的測試用例中,我們必須將URL替換為我們剛剛建立的變數。

使用URL標量變數的測試用例

Scalar Variable URL

現在,我們將執行測試用例以檢視它是否正在從變數中獲取URL。以下是執行時獲得的輸出。URL https:///robotframework/login.html是從我們建立的標量變數中獲取的。

Scalar Variable picked

執行詳情

Scalar Variable Execution

使用變數的優點是您可以更改該變數的值,並且它將反映在所有測試用例中。您可以在該專案下建立的許多測試用例中使用這些變數。當您想要更改某些內容時,硬編碼值可能是一個嚴重的問題,您必須轉到各個測試用例並更改其值。在一個地方擁有變數使我們可以靈活地以不同的變數值進行測試。

現在,我們將研究下一種型別的變數,稱為列表變數。

列表變數

列表變數將包含一個值陣列。要獲取值,列表項將作為引數傳遞給列表變數。

語法

@{variablename}

假設我們有值A、B。要引用這些值,我們需要按如下方式傳遞列表項 -

@{variablename}[0] // A
@{variablename}[1] // B

要新增列表變數,請右鍵單擊專案並單擊新建列表變數

Scalar Variable list

單擊新建列表變數後,將出現一個螢幕,我們可以在其中輸入值 -

Scalar Variable appears

名稱為@{},後跟Value。它還選擇了4列。現在,我們將只使用第1列並建立列表變數,其中將包含以下值:電子郵件ID和密碼 -

Scalar Variable password

列表變數的名稱為@{LOGIN_DETAILS},給定的值為admin@gmail.comadmin,其中包含登入頁面的電子郵件ID和密碼。

單擊“確定”儲存列表變數。變數將列在專案下方,如下所示 -

Scalar Variable listed

使用的變數詳細資訊列在“設定”選項卡中 -

Scalar Variable settings

現在,我們將按如下所示在測試用例中新增列表變數。

在這裡,我們為“輸入文字”和“密碼”硬編碼了值。現在,我們將將其更改為使用列表變數。

Scalar Variable hardcoded values

使用列表變數

Scalar Variable List Variable

現在,我們將執行測試用例以檢視它是否正在從列表變數中獲取值 -

Scalar Variable execute

它已從列表變數中獲取電子郵件ID和密碼,如上面的測試螢幕所示。

以下螢幕截圖顯示了相同的執行詳細資訊 -

Scalar Variable screenshot

在下一節中,我們將學習字典變數。

字典變數

字典變數類似於列表變數,其中我們將索引作為引數傳遞;但是,在字典變數的情況下,我們可以儲存詳細資訊 - 鍵值對形式。在測試用例中使用它時,它更容易引用,而不是使用索引0、1等。

語法

&{Variablename}

假設我們將值儲存為key1=A,key2=B。它將在測試用例中引用為 -

&{Variablename}[key1] // A
&{Variablename}[key2] // B

讓我們在RIDE中建立字典變數。

右鍵單擊專案,然後單擊新建字典變數

Dictionary Variable

單擊新建字典變數後,將出現如下所示的螢幕 -

screen appear

螢幕中的預設名稱為&{},它具有“值”和“列”選項。

我們將輸入名稱和將在測試用例中使用的值。

Name Values

單擊“確定”儲存變數。變數將列在專案下,也列在設定中,如下所示 -

save variable

save variable settings

我們將更改測試用例以獲取字典值。

change test case

我們將更改為字典變數,如下所示。

使用字典變數

Using Dictionary Variable

單擊執行後,我們將獲得以下結果 -

Run Dictionary Variable

執行詳細資訊如下 -

Execution Dictionary Variable

到目前為止,我們已經看到了“編輯”和“執行”選項卡。對於TextEdit,我們有編寫的測試用例的詳細資訊。我們也可以在TextEdit中新增所需的變數。

測試用例

Run Tab

我們在上面的測試用例中使用了標量變數和字典變數。到目前為止,這是TextEdit中的程式碼;這是基於編寫的測試用例 -

Used Scalar Variable

使用的變數以紅色突出顯示。我們也可以像下面那樣直接在TextEdit中建立所需的變數 -

我們添加了一個名為${new_url}的標量變數,其給定的值為https://tutorialspoint.tw/

單擊左上角的應用更改按鈕,變數將顯示在專案下,如下所示 -

Text Edit

同樣,可以在需要時直接在TextEdit選項卡中建立其他變數 - 列表和字典變數。

結論

我們已經瞭解瞭如何建立和使用變數。Robot Framework支援三種類型的變數:標量、列表和字典。我們詳細討論了所有這些變數的工作方式。

使用命令列

在本章中,我們將學習如何使用命令列執行測試用例。

首先,讓我們開啟命令提示符並轉到儲存測試用例的資料夾。我們建立了測試用例並儲存在C盤的robotframework資料夾中。

Open command prompt

到目前為止建立的測試用例位於C:\robotframework資料夾中。

如果您將專案儲存為檔案,則命令為 -

robot -T nameoftestcase.robot

如果您將專案儲存為目錄,則命令為 -

robot -T projectname testsuite

我們將從資料夾中執行一個建立的測試,如下所示 -

test created

輸出、日誌和報告路徑在最後顯示,如上所示。

以下螢幕截圖顯示了執行詳細資訊 -

screenshot execution

報告 (Report)

Report execution

日誌 (Log)

Log execution

結論

我們可以使用命令列執行Robot測試用例。測試用例透過或失敗的詳細資訊將與日誌和報告URL一起顯示在命令列中。

使用測試設定和測試清理

在本章中,我們將瞭解測試領域中的兩個重要概念 - 設定和拆卸。

設定

這是一組關鍵字或指令,在測試套件或測試用例執行開始之前執行。

拆卸

這是一組關鍵字或指令,在測試套件或測試用例執行開始之後執行。

我們將進行專案設定,其中將同時使用設定和拆卸。瀏覽器開啟和關閉是測試用例中的常見步驟。

現在,我們將在設定中新增關鍵字open browser,並在拆卸中新增close browser。

使用命令列中的ride.py命令開啟RIDE並建立一個新專案。

Teardown

單擊新建專案以建立專案。

Create Teardown

單擊“確定”儲存專案。

Save Teardown

單擊新建測試用例以建立一個。

Test Case Teardown

單擊“確定”儲存測試用例。

現在我們需要匯入SeleniumLibrary以使用與瀏覽器相關的關鍵字並與頁面互動。

要匯入庫,請單擊庫 -

Import library Teardown

Click library Teardown

單擊“確定”儲存庫。

Save library Teardown

在上圖中,“設定”部分具有設定和拆卸選項。對於設定,單擊編輯以輸入關鍵字。

現在,輸入關鍵字 -

Setup library Teardown

引數必須用管道字元(|)分隔。

pipe character

單擊“確定”儲存設定。我們已輸入關鍵字Open browser,並添加了如上所示的引數。

現在,我們將輸入拆卸用例。

單擊拆卸的“編輯”並輸入關鍵字。

Edit Teardown

單擊“確定”儲存拆卸。

現在,我們將輸入測試用例的關鍵字。

Keywords Teardown

測試用例中只有輸入文字。瀏覽器的開啟和關閉是從設定和拆卸設定中完成的。

測試執行詳細資訊

Execution Teardown

結論

設定和拆卸在測試領域中起著至關重要的作用。我們已經瞭解瞭如何在測試用例中使用設定和拆卸,以及它們是如何執行的。

使用內建庫

在本章中,我們將介紹Robot Framework附帶的一些重要的內建關鍵字。我們可以將這些關鍵字與外部庫一起用於編寫測試用例。我們還預設情況下可以使用Robot Framework提供的內建庫。它主要用於驗證(例如 - Should Be Equal、Should Contain)、轉換(轉換為整數、記錄到控制檯等)。

我們將處理一個簡單的測試用例,並將使用其中的內建庫。

我們已在RIDE中建立專案和測試用例,如下所示 -

Built In Keywords

我們建立了2個標量變數 - number和name,如下所示 -

Scalar Keywords

以下是用於比較數字、字串、連線等的測試用例。我們在下面的測試用例中使用了簡單的關鍵字。關鍵字在此處以表格形式顯示 -

Comparing Number

以下是來自文字編輯器的上述測試用例的測試程式碼 -

Test Cases Edit

現在,我們將執行測試用例以檢視結果。

Test Cases Results

當您以表格格式編寫關鍵字時,請按 Ctrl + 空格鍵。它會列出 Robot Framework 中可用的內建關鍵字。

Tabular Format

它在相應的視窗中提供了每個關鍵字的詳細資訊以及示例。當我們點選相應的視窗時,它將單獨開啟,如下所示:

corresponding window

結論

我們已經看到了 Robot Framework 預設提供的與字串、數字、日誌訊息相關的關鍵字。這些關鍵字可以與外部庫一起使用,也可以用於建立使用者自定義關鍵字來處理測試用例。

使用外部資料庫庫

我們已經瞭解瞭如何使用 Selenium 庫。Selenium 庫的詳細安裝/匯入在“使用 Selenium 庫處理瀏覽器”一章中進行了討論。

本章將討論資料庫庫,以及如何使用 Robot Framework 連線和測試資料庫。

訪問 Robot Framework 網站 https://robotframework.org/ 並點選,如下所示:

Database Using Robot Framework

點選庫後,您將被重定向到如下所示的螢幕:

Redirected Screen

庫分為標準庫、外部庫和其他庫。

本章我們將重點介紹外部庫。點選外部庫後,將顯示以下螢幕:

Libraries categorized

它顯示了 Robot Framework 支援的外部庫列表。在這裡,我們將更多地關注資料庫庫 (Python)。上面的螢幕截圖中已突出顯示。

點選資料庫庫 (Python) 後,您將被重定向到一個螢幕,其中列出了安裝說明,如下面的螢幕截圖所示:

Database Library

我們可以使用 pip 安裝資料庫庫,命令如下:

pip install -U robotframework-databaselibrary

在命令列中執行上述命令,如下所示:

Command line Library

庫儲存在 python 庫資料夾中,如下所示:

Python Library

安裝完成後,下一步是在專案內部匯入庫,並將其與測試用例一起使用。

匯入資料庫庫

使用命令列中的ride.py開啟 RIDE,並建立用於測試資料庫的專案。

testing database

點選新建專案,併為專案命名。

Name database

單擊“確定”儲存專案。

在“新增匯入”下點選“庫”。

 Add Import database

 Import database

將庫名稱輸入為 DatabaseLibrary,如下所示,然後點選確定。

Database Library Name

儲存後,庫如下所示:

Saved Library Name

我們將使用 MySQL 資料庫。要使用 MySQL,我們需要安裝模組。

命令

pip install pymysql
install pymysql

現在,在建立的專案下建立測試用例。

install pymysql

點選新建測試用例:

Test Case pymysql

輸入測試用例的名稱,然後單擊確定。

我們將使用現有的名為 customers 的資料庫。

我們將使用 phpMyAdmin 來顯示 customer 資料庫:

phymyadmin

我們有一個名為 customer 的表,其中資料分佈在 6 行中。現在,我們將編寫一個測試用例,它將連線到 MySQL 資料庫 customers 並從 customer 表中獲取資料。

在開始之前,我們將建立標量變數來儲存dbname、dbuser、dbpasswd、dbhost、dbport 和 queryresult 等資料。以下是建立的變數及其值:

queryresult

連線到資料庫的命令是:

Connect To Database pymysql ${dbname} ${dbuser} 
${dbpasswd} ${dbhost} ${dbport}
Connect To Database

我們將新增更多測試用例,如下所示:

more test cases

以下是詳細資訊:

*** Settings ***
Library DatabaseLibrary

*** Variables ***
${dbname} customers
${dbuser} root
${dbpasswd} admin
${dbhost} localhost
${dbport} 3306
@{queryResults}

*** Test Cases ***
TC1

   Connect To Database pymysql ${dbname} ${dbuser} 
   ${dbpasswd} ${dbhost} ${dbport}
   Table Must Exist customer
   Check If Exists In Database SELECT * FROM customer
   @{queryResults} Query SELECT * FROM customer
   Log @{queryResults}[0]

我們已連線到資料庫,檢查了表 customer 是否存在於資料庫中,執行了查詢並記錄了查詢的詳細資訊。

我們將執行測試用例並檢視輸出。

See The Output

查詢結果顯示了表中的結果。

日誌詳細資訊

Query Results

TC1 的詳細資訊

Details of TC1

結論

我們已經瞭解瞭如何匯入資料庫庫及其安裝。現在我們知道了如何在 Robot Framework 中連線到 MySQL 資料庫並測試表。

使用 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 瀏覽器中開啟登入頁面並最大化視窗。在拆卸中,我們將關閉瀏覽器。

對於設定,我們將建立一個名為開啟登入頁面的使用者自定義關鍵字。此關鍵字將接受 2 個引數,登入頁面 URL 和瀏覽器名稱。

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

在 RIDE 中,建立 2 個變數${loginpage}${browser},如下所示:

${loginpage}

loginpage

${browser}

browser

儲存這兩個變數。

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

Variables Displayed

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

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

Suite Setup

Suite Setup setting

我們建立了使用使用者關鍵字開啟登入頁面以及引數${loginpage}${browser}的設定。

點選確定儲存設定。

現在,我們必須建立使用者自定義關鍵字開啟登入頁面,方法如下:

右鍵點選專案並點選新建使用者關鍵字

New User Keyword project

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

New User Keyword appears

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

New User Keyword arguments

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

New User Keyword library

開啟登入頁面使用者自定義關鍵字具有以下詳細資訊:

*** 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 Teardown login

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

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

Suite Teardown Setup

對於測試設定,我們建立了一個名為登入頁面顯示的使用者自定義關鍵字,它將採用${loginpage}作為引數,如上圖所示。

點選確定儲存測試設定。

Suite Teardown save

現在,我們需要建立使用者關鍵字登入頁面顯示

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

Suite Teardown click

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

Suite Teardown display

點選確定儲存關鍵字。

現在讓我們輸入使用者關鍵字登入頁面顯示所需的關鍵字。

Login Page Display

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

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

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

data driven test cases

您將被定向到以下螢幕:

data driven directed

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

在建立 Test Login 關鍵字之前,我們需要一些標量變數。標量變數將包含電子郵件 ID、密碼、successpage、failurepage 等的詳細資訊。

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

scalar variables for test suite

我們建立了電子郵件、密碼、successpage 和 failurepage 標量變數,如上圖所示。

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

Create Test Login

點選確定儲存關鍵字。

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

Screenshot Test Login

輸入電子郵件、輸入密碼、提交詳細資訊登入應失敗是使用者定義的關鍵字,其定義如下:

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

結論

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

廣告