robotframework笔记11

测试用例的语法

基本语法

测试用例构造测试用例表中可用 关键词。 关键字可以进口 测试库 或 资源 文件 或创建的 关键字表 的测试用例文件 本身。

测试用例表中第一列包含测试用例的名称。 一个 测试用例开始在这一列和行了 继续下一个测试用例名称或表的结束。 它是 之间有一个错误表标题和第一 测试。

第二列通常有关键字的名字。 一个例外 是 从关键字设置变量返回值 ,当第二和 也可能随后列包含变量名和关键字 的名字是位于。 在这两种情况下,列在关键字的名字 包含可能的参数指定的关键字。

*** Test Cases ***
Valid Login
    Open Login Page
    Input Username    demo
    Input Password    mode
    Submit Credentials
    Welcome Page Should Be Open

Setting Variables
    Do Something    first argument    second argument
    ${value} =    Get Some Value
    Should Be Equal    ${value}    Expected value

设置测试用例表中

测试用例也可以有自己的设置。 设置名字总是 在第二列关键字通常是和它们的值 在随后的列。 设置名字方括号 他们区分关键字。 列出可用的设置 下面解释之后在这一节中。

(文档)
用于指定一个 测试用例文档 。
(标签)
用于 标签的测试用例 。
(设置) , (拆卸)
指定 测试安装和拆卸 。
(模板)
指定了 模板的关键字 使用。 测试本身只包含 关键字的数据作为参数。
(超时)
用于设置一个 测试用例超时 。 超时 讨论了 自己的部分。

示例设置测试用例:

*** Test Cases ***
Test With Settings
    [Documentation]    Another dummy test
    [Tags]    dummy    owner-johndoe
    Log    Hello, world!

测试用例设置表中的相关设置

设置表可以有以下相关的测试用例 设置。 这些设置主要是默认值 上市前测试用例的具体设置。

力的标签 , 默认的标签
强制和默认值 标签 。
测试设置 , 测试拆卸
的默认值 测试安装和拆卸 。
测试模板
默认的 模板的关键字 使用。
测试超时
的默认值 测试用例超时 。 超时 讨论了 自己的部分。

使用参数

前面的例子已经证明了关键词 不同的参数,本节讨论这个重要 功能更彻底。 如何真正实现 用户 关键字 和 库关键字 用不同的参数是 讨论了在不同的部分。

关键字可以接受零个或多个参数,和一些参数 有默认值。 什么参数关键字接受取决于它 实现,通常最好的地方搜索 信息关键字的文档。 在这个例子中 部分文档将使用生成的 Libdoc工具,但相同的信息是可用的 文档生成工具,如通用文档 javadoc 

强制参数

大部分关键词有一定数量的参数,必须始终 考虑到。 在这个用指定关键字的文档 参数名称用逗号分隔 第一,第二, 第三 。 参数名称实际上并不重要,在这种情况下,除了 他们应该解释什么论点,但它是很重要的 有完全相同的数量的参数中指定 文档。 使用太少或太多的争论将导致 错误。

下面的测试使用关键词 创建目录 和 复制 文件 从 操作 图书馆。 他们的论点是 指定为 路径 和 源,目的地 ,这意味着 他们把一个和两个参数,分别。 最后一个关键字, 没有操作 从内装式 ,不接受参数。

*** Test Cases ***
Example
    Create Directory    ${TEMPDIR}/stuff
    Copy File    ${CURDIR}/file.txt    ${TEMPDIR}/stuff
    No Operation

默认值

参数通常可以被给予或有默认值 不是。 在文档中默认值通常是分离的 从参数名称一个等号 name =违约 价值 ,但关键字使用Java实现的可能 多种实现 相同的关键字与不同 参数。 它是可能的,所有的参数有默认 值,但不能有任何位置参数后参数 用默认值。

使用下面的例子所示,使用默认值 创建文件 关键字的参数 路径、内容= utf - 8编码= 。 尝试使用它不带任何参数或以上 三个参数将不会工作。

*** Test Cases ***
Example
    Create File    ${TEMPDIR}/empty.txt
    Create File    ${TEMPDIR}/utf-8.txt         Hyvä esimerkki
    Create File    ${TEMPDIR}/iso-8859-1.txt    Hyvä esimerkki    ISO-8859-1

数量可变的参数

也有可能一个字接受任意数量的参数。 这些所谓的 可变参数 可以结合强制参数 和参数使用默认值,但他们总是后 他们。 在之前的文档有星号的论点 名字像 *可变参数 

例如, 删除文件 和 加入路径 关键字的 的 操作 图书馆有争论 *路径 和 基地,*部分 , 分别。 前者可以使用任意数量的参数,但是 后者要求至少有一个参数。

*** Test Cases ***
Example
    Remove Files    ${TEMPDIR}/f1.txt    ${TEMPDIR}/f2.txt    ${TEMPDIR}/f3.txt
    @{paths} =    Join Paths    ${TEMPDIR}    f1.txt    f2.txt    f3.txt    f4.txt

命名参数

命名参数的语法使得用参数 默认值 更多的 灵活,并允许显式标识某一参数值意味着什么。 技术上命名参数完全一样工作 关键字参数 在Python中。

基本语法

是可能的名字前缀的参数给一个关键字值 与参数的名称 arg =值 。 这是特别 有用当多个参数有默认值, 可能的名字只有一些参数和让别人使用它们的默认值。 例如,如果一个关键词接受参数 __arg1 = a、最长= b,长度= c , 和它被称为一个参数 长度=覆盖 ,参数 __arg1 和 最长 默认值,但是 长度 获得的价值 覆盖 。 如果这听起来复杂, 命名参数 例子 下面希望使它更清楚。

命名参数语法既情况和空间敏感。 前 意味着,如果你有一个论点 参数 ,你必须使用它 arg =值 ,也不 Arg =值 也不 ARG =值 的工作原理。 后者意味着空间之前是不允许的 符号,和可能的空间后,被认为是给定值的一部分。

当使用命名参数的语法 用户的关键字 ,争论 名称必须是没有 $ { } 装饰。 例如,用户 关键字使用参数 $ { __arg1 } =第一,$ {最长} = 必须使用 就像 最长=覆盖 

使用命名参数后正常位置参数,例如, | | |关键字参数=价值位置| ,不工作。 从机器人Framework 2.8这将导致一个显式的错误。 命名参数的相对顺序无关紧要。

请注意

机器人框架2.8之前是不可能命名参数 没有默认值。

命名参数和变量

可以使用 变量 指定参数名称和值。 如果该值是一个单身 标量变量 ,它是按原样传递给关键字。 这允许使用任何对象,不仅字符串,价值观也在使用 命名参数的语法。 例如,调用一个关键字 arg = $ {对象} 将变量 $ {对象} 不将它转换为关键字 一个字符串。

如果变量是用于命名参数名称,变量之前解决 匹配的参数名称。 这是机器人框架中的一个新特性 2.8.6。

命名参数语法要求等号是随便写的 在关键字的电话。 这意味着变量单独不能触发 命名参数语法,甚至如果有一个值 foo = bar 。 这是 要记住特别是包装关键字到其他关键词。 例如,如果一个关键词 数量可变的参数 就像 @ { args } 并将他们所有人传递到另一个使用相同的关键字 @ { args } 语法,可能 名叫=参数 语法用于调用方不认可。 下面的示例所示。

*** Test Cases ***
Example
    Run Program    shell=True    # This will not come as a named argument to Run Process

*** Keywords ***
Run Program
    [Arguments]    @{args}
    Run Process    program.py    @{args}    # Named arguments are not recognized from inside @{args}

如果关键词需要接受和通过任何命名参数,必须 接受改变 免费的关键字参数 。 看到 kwargs例子 为 包装器关键字版本,可以通过两个位置参数和命名参数 前进。

逃离命名参数的语法

使用命名参数语法只有当参数的一部分 在等号匹配关键字的一个参数。 这是可能的 有一个位置参数和一个文本值 foo = quux , 还有一个论点与名字无关 喷火 。 在这种情况下,参数喷火 要么不正确的值 quux 或者,更有可能的是, 有一个语法错误。

在罕见的情况下,有意外的比赛,是可能的 使用反斜杠字符 逃避 语法就像 foo \ = quux 。 现在的观点会得到一个文本值 foo = quux 。 注意,逃离 不需要如果没有争论的名字吗 喷火,而是因为它 使情况更显式的,不过它可能是一个好主意。

支持命名参数在哪里

命名的参数已经解释说,语法使用关键词。 在 此外,它还在工作 导入库 。

命名参数支持 用户的关键字 和大多数 测试库 。 唯一的例外是使用基于Java库 静态库API 。 库文档生成 Libdoc 有一个注意图书馆吗 支持命名参数。

请注意

机器人框架2.8之前命名参数语法并不奏效 使用与测试库 动态库的API 。

命名参数的例子

下面的例子演示了使用命名参数语法 库关键字,用户关键字,当导入 远程登录 测试库。

*** Settings ***
Library    Telnet    prompt=$    default_log_level=DEBUG

*** Test Cases ***
Example
    Open connection    10.0.0.42    port=${PORT}    alias=example
    List files    options=-lh
    List files    path=/tmp    options=-l

*** Keywords ***
List files
    [Arguments]    ${path}=.    ${options}=
    List files    options=-lh
    Execute command    ls ${options} ${path}

免费的关键字参数

机器人框架2.8添加支持 Python风格免费的关键字参数 ( * * kwargs )。 这意味着,关键词可以接收所有参数 使用 名称=值 语法和其他参数作为kwargs不一致。

同样是免费的关键字参数支持变量 命名参数 。 在实践中这意味着变量 可以使用的名称和值,但越狱标志必须吗 可见。 例如, foo = $ {酒吧} 和 $ { foo } = $ {酒吧} 是 有效的,只要使用的变量存在。 一个额外的限制是 免费的关键字参数名称必须是字符串。 支持变量 在名字中的一个新特性2.8.6机器人框架,在此之前 变量un-resolved。

最初只免费的关键字参数与基于Python库,但是 机器人框架2.8.2扩展的支持 动态库的API 和机器人框架2.8.3将进一步扩展到基于Java库和 的 远程库接口 。 最后,用户关键字了kwargs支持 在机器人框架2.9。 换句话说, 现在所有的关键词都可以支持kwargs。

Kwargs例子

作为使用kwargs的第一个例子,让我们看一看 运行过程 关键字的 过程 图书馆。 它有一个签名 命令,*参数,* *配置 ,这意味着它需要的命令 执行( 命令 ),其参数 数量可变的参数 ( *参数 免费的关键字),最后可选配置参数 参数( * *配置 )。 下面的示例还显示变量 使用免费的关键字参数时完全一样 使用命名参数 语法 。

*** Test Cases ***
Using Kwargs
    Run Process    program.py    arg1    arg2    cwd=/home/user
    Run Process    program.py    argument    shell=True    env=${ENVIRON}

看到 免费的关键字参数(* * kwargs) 下节 创建测试 库 关于使用kwargs语法的更多信息 您的自定义测试库。

第二个例子,让我们创建一个包装器 用户关键字 为运行 program.py 在上面的例子中。 包装的关键字 运行程序 接受任意数量的参数和kwargs,向前传递 运行过程 在执行命令的名称。

*** Test Cases ***
Using Kwargs
    Run Program    arg1    arg2    cwd=/home/user
    Run Program    argument    shell=True    env=${ENVIRON}

*** Keywords ***
Run Program
    [Arguments]    @{arguments}    &{configuration}
    Run Process    program.py    @{arguments}    &{configuration}

参数嵌入关键字的名字

一个完全不同的方法来指定参数嵌入 为关键字的名字。 支持这种语法 测试库关键字 和 用户的关键字 。

失败

当测试用例失败

一个测试用例失败如果任何关键字使用失败。 通常这意味着 执行的测试用例是停止,可能的 测试拆卸 执行, 然后继续执行下一个测试用例。 还可以 使用特殊的 可持续的失败 如果不需要停止测试执行。

错误消息

分配给一个失败的测试用例的错误信息是直接从了 失败的关键字。 错误消息通常是由关键字本身,但是 一些关键字允许配置它们。

在某些情况下,例如当使用可持续失败时, 一个测试用例可以失败很多次了。 在这种情况下最后一个错误消息 通过结合了个人的错误。 很长的错误消息 自动从中间继续削减 报告 更容易阅读。 完整的 错误消息总是可见的 日志 文件作为失败的消息 关键字。

默认错误消息是正常的文本,但是 从机器人Framework 2.8 包含HTML格式 。 这 由开始启用和标记的字符串错误消息吗 * HTML * 。 这个标记将被删除从最终的报告所示的错误消息 和日志。 使用HTML的一个自定义的消息在第二个示例中所示。

*** Test Cases ***
Normal Error
    Fail    This is a rather boring example...

HTML Error
    ${number} =    Get Number
    Should Be Equal    ${number}    42    *HTML* Number is not my <b>MAGIC</b> number.

测试用例名称和文档

测试用例名称直接来自测试用例表:它是 究竟什么是输入到测试用例列。 在一个测试用例 测试套件应该使用唯一的名称。 有关这一点,你也可以 使用 自动变量 $ { TEST_NAME } 在测试 参考测试名称。 这是测试时可用 被执行,包括所有用户的关键词,以及测试设置 和测试拆卸。

的 (文档) 设置允许您设置一个免费的 测试用例文档。 文本命令行所示 输出,以及由此产生的测试记录和测试报告。 可以使用简单 HTML格式 在文档和 变量 可用于制造文档动态。

如果文档分成多个列,细胞在一行 与空间连接在一起。 这主要是有用的,当使用 的 HTML格式 和列是狭窄的。 如果文档是 分裂 到多个行 创建的文档本身 连接使用换行 。 如果一行换行不添加 已经以换行符或结束 逃避反斜杠 。

*** Test Cases ***
Simple
    [Documentation]    Simple documentation
    No Operation

Formatting
    [Documentation]    *This is bold*, _this is italic_  and here is a link: http://robotframework.org
    No Operation

Variables
    [Documentation]    Executed at ${HOST} by ${USER}
    No Operation

Splitting
    [Documentation]    This documentation    is split    into multiple columns
    No Operation

Many lines
    [Documentation]    Here we have
    ...                an automatic newline
    No Operation

重要的是,测试用例有明确的和描述性的名称,和 在这种情况下,他们通常不需要任何文档。 如果逻辑 的测试用例需要记录时,它通常是一个迹象表明,关键词 在测试用例需要更好的名称,它们是可以被增强, 而不是添加额外的文档。 最后,元数据,比如 环境和用户信息在上面的最后一个例子中,是经常的 更好的使用 标签 。

标签测试用例

使用标签在机器人框架是一个简单的,但功能强大的机制 对测试用例进行分类。 标签是免费的文本,他们可以使用 至少以下用途:

  • 标签所示测试 报告 , 日志 当然,在测试 测试用例数据,所以他们提供元数据。
  • 统计数据 测试用例(总,通过,失败了 自动收集基于标签)。
  • 使用标签,您可以 包括或排除 执行测试用例。
  • 使用标签,您可以指定哪些测试用例 至关重要的 。

在本节中只有解释了如何为测试设置标签 例,下面列出了不同的方式去做。 这些 方法自然可以一起使用。

力的标签 在设置表
所有的测试用例在测试用例文件与此设置总是 指定的标签。 如果是使用的 测试套件初始化文件 , 所有测试用例子测试套件让这些标签。
默认的标签 在设置表
没有测试用例 (标签) 设置自己的 这些标签。 初始化默认不支持标签测试套件 文件。
(标签) 在测试用例表中
一个测试用例总是这些标签。 此外,它不会得到 可能的标签指定 默认的标签 ,所以这是可能的 覆盖的 默认的标签 通过使用空值。 它是 也可以使用价值 没有一个 覆盖默认的标签。
——settag 命令行选项
所有测试用例执行除了获取标签设置这个选项 他们有其他标签。
设置标签 , 删除标签 , 失败 和 通过执行 关键字
这些 内装式 关键字可以用来操纵动态标签 在测试期间执行。

标签是免费的文本,但他们归一化,这样转换 小写和所有的空间都被删除了。 如果一个测试用例得到相同的标签 几次,其他事件比第一个删除。 标签 可以创建使用变量,这些变量存在的假设。

*** Settings ***
Force Tags      req-42
Default Tags    owner-john    smoke

*** Variables ***
${HOST}         10.0.1.42

*** Test Cases ***
No own tags
    [Documentation]    This test has tags owner-john, smoke and req-42.
    No Operation

With own tags
    [Documentation]    This test has tags not_ready, owner-mrx and req-42.
    [Tags]    owner-mrx    not_ready
    No Operation

Own tags with variables
    [Documentation]    This test has tags host-10.0.1.42 and req-42.
    [Tags]    host-${HOST}
    No Operation

Empty own tags
    [Documentation]    This test has only tag req-42.
    [Tags]
    No Operation

Set Tags and Remove Tags Keywords
    [Documentation]    This test has tags mytag and owner-john.
    Set Tags    mytag
    Remove Tags    smoke    req-*

保留标签

用户通常免费使用任何标记在他们的工作环境。 然而,某些标签对机器人有一个预定义的意义 框架本身,为其他目的使用它们可以有意外 结果。 所有特殊标签机器人框架,将会在未来 有一个 机器人- 前缀。 为了避免问题,因此不应该使用任何用户 标签与一个 机器人- 前缀,除非真正激活的特殊功能。

在撰写本文时,唯一特殊的标记 robot-exit 这是 当自动添加到测试 优雅地停止测试执行 。 更多的使用可能会被添加在未来,。

测试安装和卸载

机器人框架也有类似的测试设置和清除功能很多 其他的测试自动化框架。 简而言之,一个测试设置 之前执行一个测试用例,测试执行拆卸 在一个测试用例。 在机器人框架设置和拆解 普通关键字参数。

Setup和teardown总是一个字。 如果他们需要照顾 多个单独的任务,就可以创建更高级的 用户 关键字 用于这一目的。 另一种解决方案是执行多个 关键字使用 内装式 关键字 运行关键字 。

测试拆卸是特别的在两个方面。 首先,它也执行 当一个测试用例失败,因此它可以用来清理活动,必须 不管测试用例的状态。 此外,所有的关键词 拆卸也执行即使其中一个失败。 这继续失败 功能还可以使用正常的关键字,但在拆解 在默认情况下。

最简单的方法来指定为测试用例设置或拆卸 使用测试用例文件 测试设置 和 测试 拆卸 设置表中设置。 单个测试用例可以 也有自己的安装或拆卸。 他们的定义 (设置) 或(拆卸) 设置测试用例 表,他们覆盖 测试设置 和 测试拆卸 设置。 没有关键字之后 (设置) 或 (拆卸) 设置意味着没有 安装或拆卸。 还可以使用价值 没有一个 表明 一个测试没有安装/拆卸。

*** Settings ***
Test Setup       Open Application    App A
Test Teardown    Close Application

*** Test Cases ***
Default values
    [Documentation]    Setup and teardown from setting table
    Do Something

Overridden setup
    [Documentation]    Own setup, teardown from setting table
    [Setup]    Open Application    App B
    Do Something

No teardown
    [Documentation]    Default setup, no teardown at all
    Do Something
    [Teardown]

No teardown 2
    [Documentation]    Setup and teardown can be disabled also with special value NONE
    Do Something
    [Teardown]    NONE

Using variables
    [Documentation]    Setup and teardown specified using variables
    [Setup]    ${SETUP}
    Do Something
    [Teardown]    ${TEARDOWN}

执行的名称关键字设置或拆解 变量。 这有助于在不同的安装或拆卸 不同的环境给关键字名称作为变量 命令行。

请注意

测试套件可以安装和拆卸的 自己的 。 一套设置或子测试之前执行任何测试用例 套件测试套件,同样一套拆卸 后执行。

测试模板

测试模板转换正常 关键字驱动 测试用例在 数据驱动的 测试。 而一个关键字驱动测试用例的身体 是由关键词及其可能的参数,测试用例 模板只包含关键字的参数模板。 而不是多次重复相同的关键字/测试和/或所有 测试在一个文件中,可以使用它只每只测试或一次文件。

模板的关键字可以接受正常的位置参数和命名参数, 以及嵌入式关键字名称作为参数。 与其他设置, 不可能使用一个变量定义一个模板。

基本用法

如何使用关键字接受正常的位置参数作为模板吗 如下面的例子测试用例。 这两个测试 功能完全相同。

*** Test Cases **
Normal test case
    Example keyword    first argument    second argument

Templated test case
    [Template]    Example keyword
    first argument    second argument

为例说明,可以指定 一个单独的测试用例使用的模板 (模板) 设置。 另一种方法是使用 测试模板 设置表中设置,在这种情况下,应用模板 为所有的测试用例,测试用例文件。 的(模板) 设置覆盖可能的模板中设置设置表,和 一个空值 (模板) 意味着没有测试 模板,即使 测试模板 使用。 也有可能 使用价值 没有一个 表明一个测试没有模板。

如果一个模板化的测试用例有多个数据行身体,模板 适用于所有的行。 这 意味着同样的关键字执行多次,一次数据 在每一行。 模板化测试也特殊,这样所有的轮 即使其中的一个或多个执行失败。 可以使用这个 种 继续失败 模式与正常测试,但是 模板化测试自动模式。

*** Settings ***
Test Template    Example keyword

*** Test Cases ***
Templated test case
    first round 1     first round 2
    second round 1    second round 2
    third round 1     third round 2

用参数 默认值 或 可变参数 以及使用 命名参数 和 免费的关键字参数 ,使用模板 就像他们的工作。 使用 变量 在参数也 支持正常。

模板与嵌入参数

从机器人框架2.8.2、模板支持的一种变体 的 嵌入参数语法 。 与模板语法是这样 关键字,如果模板变量的名字,他们被认为是 参数和占位符替换为实际的参数 使用的模板。 然后使用所产生的关键字没有位置 参数。 这是最好的说明了一个例子:

*** Test Cases ***
Normal test case with embedded arguments
    The result of 1 + 1 should be 2
    The result of 1 + 2 should be 3

Template with embedded arguments
    [Template]    The result of ${calculation} should be ${expected}
    1 + 1    2
    1 + 2    3

*** Keywords ***
The result of ${calculation} should be ${expected}
    ${result} =    Calculate    ${calculation}
    Should Be Equal    ${result}     ${expected}

使用模板嵌入参数时,参数的数量 模板关键字名称必须匹配的参数使用。 参数名称不需要原来的关键字匹配的参数, 不过,也可以使用完全不同的参数:

*** Test Cases ***
Different argument names
    [Template]    The result of ${foo} should be ${bar}
    1 + 1    2
    1 + 2    3

Only some arguments
    [Template]    The result of ${calculation} should be 3
    1 + 2
    4 - 1

New arguments
    [Template]    The ${meaning} of ${life} should be 42
    result    21 * 2

的主要好处嵌入模板参数是使用 显式地指定参数名称。 当使用正常的参数, 同样的效果可以通过命名包含的列 参数。 这是说明的 数据驱动的风格 的例子 下一节。

模板的循环

如果使用模板 for循环 ,申请的模板 在循环的所有步骤。 失效模式的继续使用 也在这种情况下,这意味着执行的所有步骤 所有循环元素即使有故障。

*** Test Cases ***
Template and for
    [Template]    Example keyword
    :FOR    ${item}    IN    @{ITEMS}
    \    ${item}    2nd arg
    :FOR    ${index}    IN RANGE    42
    \    1st arg    ${index}

风格不同的测试用例

有几种不同的方法测试用例可能会写。 测试 描述某种类型的情况下 工作流 可以写吗 关键字驱动或行为驱动方式。 数据驱动方式可用于测试 相同的工作流不同输入数据。

关键字驱动方式

工作流程测试,等 有效的登录 测试描述 早些时候 ,是由几个关键词及其可能的 参数。 正常的系统结构是第一个 到初始状态( 打开登录页面 在 有效的 登录 例子),然后是对系统(输入 的名字 , 输入密码 , 提交的凭证 ), 最后验证,系统行为 ( 欢迎页面应该开放 )。

数据驱动的风格

另一个风格是编写测试用例 数据驱动的 方法, 测试用例只使用一个更高级的关键词,通常创建一个 用户关键字 ,隐藏实际的测试工作流程。 这些测试是 非常有用当有需要测试相同的场景 不同的输入和/或输出数据。 有可能重复 和每个测试相同的关键字,但是 测试模板 功能 只允许指定关键字使用一次。

*** Settings ***
Test Template    Login with invalid credentials should fail

*** Test Cases ***                USERNAME         PASSWORD
Invalid User Name                 invalid          ${VALID PASSWORD}
Invalid Password                  ${VALID USER}    invalid
Invalid User Name and Password    invalid          invalid
Empty User Name                   ${EMPTY}         ${VALID PASSWORD}
Empty Password                    ${VALID USER}    ${EMPTY}
Empty User Name and Password      ${EMPTY}         ${EMPTY}

提示

命名列在上面的示例中使测试更容易 理解。 这是有可能的,因为标题行 除了第一个细胞 被忽略 。

上面的例子中有六个独立的测试,一个用于每一个无效的 用户/密码组合,下面的例子说明了如何 只有一个测试的所有组合。 当使用 测试 模板 在测试执行,所有的轮即使有 失败,所以没有真正的功能这两个的区别 风格。 在上面的例子中单独命名所以组合 容易看到他们测试,但是有可能大量的 这些测试可能乱七八糟的统计数据。 使用哪个风格取决于 环境和个人喜好。

*** Test Cases ***
Invalid Password
    [Template]    Login with invalid credentials should fail
    invalid          ${VALID PASSWORD}
    ${VALID USER}    invalid
    invalid          whatever
    ${EMPTY}         ${VALID PASSWORD}
    ${VALID USER}    ${EMPTY}
    ${EMPTY}         ${EMPTY}

行为驱动方式

也可以写测试用例要求也非技术 项目干系人必须理解。 这些 可执行的要求 是一个 墙角石的过程通常被称为 验收测试驱动开发 (ATDD)或 规范的例子 。

写这些需求/测试的一种方法 Given-When-Then 风格 推广的 行为驱动开发 (BDD)。 在编写测试用例 这种风格,初始状态通常是表示关键字开始 词 鉴于 与描述的行为是关键字开始当 和关键字开始的期望 然后 。 关键字开始 和 或 但 可以使用如果一个步骤 比一个行动。

*** Test Cases ***
Valid Login
    Given login page is open
    When valid username and password are inserted
    and credentials are submitted
    Then welcome page should be open
忽略 / / /,/但 前缀

前缀 鉴于 , 当 , 然后 , 和 和 但 到匹配的关键字搜索时,如果没有匹配的全名吗 是发现。 这是对图书馆用户关键词和关键词。 例如, 打开登录页面 在上面的例子中可以实现 用户关键词要么有或没有这个词 鉴于 。 忽略前缀 还允许使用相同的关键字与不同的前缀。 例如 欢迎页面应该开放 也可以用作 和欢迎页面 应该是开放的 。

请注意

忽略 但 前缀是新的2.8.7机器人框架。

嵌入数据关键字

当编写具体的例子是很有用的可以通过实际数据 关键字实现。 支持这种通过允许用户关键词 嵌入 参数为关键字的名字 。

posted @ 2016-04-15 23:44  七月的尾巴_葵花  阅读(1800)  评论(0编辑  收藏  举报