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://www.pythonlang.cn/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://www.pythonlang.cn/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.com/ chrome
   Maximize Browser Window
   Close Browser

我们将在此项目中添加另一个测试用例:TC2。

same project
*** Settings ***
Library SeleniumLibrary

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

*** Test Cases ***
TC1
   Open Browser https://tutorialspoint.com/ 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.com/
${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.com/,测试用例详细信息如下:

ctrl spacebar Ex

现在让我们运行这个测试用例来看看输出:

run test case

run test case Ex

测试用例已通过;我们可以看到该网站已在 Chrome 浏览器中打开。

我们将添加更多测试用例,如下所示:

test case passed
  • 打开浏览器 - URL - 在 Chrome 浏览器中打开https://tutorialspoint.com/

  • 捕获页面屏幕截图 - 图片名称为 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.com/上的定位器 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://127.0.0.1/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://127.0.0.1/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://127.0.0.1/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://127.0.0.1/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://127.0.0.1/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.com/并在输入文本中输入详细信息。

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://127.0.0.1/robotframework/login.html

我们添加了如上所示的注释。单击“确定”保存标量变量。变量的详细信息将如下所示添加 -

Scalar Variable comment

变量名称显示在创建的项目下,如下所示 -

Scalar Variable created

现在让我们在测试用例中使用创建的标量变量。

使用硬编码URL的测试用例

Scalar Variable hardcoded

在上面的测试用例中,我们必须将URL替换为我们刚刚创建的变量。

使用URL标量变量的测试用例

Scalar Variable URL

现在,我们将运行测试用例以查看它是否正在从变量中获取URL。以下是运行时获得的输出。URL https://127.0.0.1/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},给定的值为[email protected]admin,其中包含登录页面的电子邮件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.com/

单击左上角的应用更改按钮,变量将显示在项目下,如下所示 -

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 == "[email protected]" && document.getElementById("passwd").value == "admin") {
               location.href = "https://127.0.0.1/robotframework/success.html";
            } else {
               location.href = "https://127.0.0.1/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

电子邮件使用[email protected]作为值,${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://127.0.0.1/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://127.0.0.1/robotframework/login.html'
20181027 18:11:46.169 : INFO : Page title is 'Login Page'.
20181027 18:11:46.180 : INFO : Typing text '[email protected]' 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://127.0.0.1/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://127.0.0.1/robotframework/login.html'
20181027 18:11:47.767 : INFO : Page title is 'Login Page'.
20181027 18:11:47.783 : INFO : Typing text '[email protected]' 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://127.0.0.1/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://127.0.0.1/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://127.0.0.1/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://127.0.0.1/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://127.0.0.1/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://127.0.0.1/robotframework/login.html'
20181027 18:11:51.063 : INFO : Page title is 'Login Page'.
20181027 18:11:51.071 : INFO : Typing text '[email protected]' 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://127.0.0.1/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://127.0.0.1/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://127.0.0.1/robotframework/loginfailed.html'.
20181027 18:11:52.432 : INFO : Page title is 'Login Failed'.
Ending test: Testlogin.Testlogin Suite.Empty Email And Password

结论

在这里,我们已经看到了如何使用不同的输入来测试登录页面,这将验证登录是否正常工作。日志部分给出了执行过程的详细信息。

广告