测试用例的语法
基本语法
测试用例构造测试用例表中可用 关键词。 关键字可以进口 测试库 或 资源 文件 或创建的 关键字表 的测试用例文件 本身。
测试用例表中第一列包含测试用例的名称。 一个 测试用例开始在这一列和行了 继续下一个测试用例名称或表的结束。 它是 之间有一个错误表标题和第一 测试。
第二列通常有关键字的名字。 一个例外 是 从关键字设置变量返回值 ,当第二和 也可能随后列包含变量名和关键字 的名字是位于。 在这两种情况下,列在关键字的名字 包含可能的参数指定的关键字。
*** 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 MAGIC 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机器人框架。
嵌入数据关键字
当编写具体的例子是很有用的可以通过实际数据 关键字实现。 支持这种通过允许用户关键词 嵌入 参数为关键字的名字 。