文章目录
转载请注明原始链接:https://blog.csdn.net/a464057216/article/details/104396440
后续此博客不再更新,欢迎大家搜索关注微信公众号“测开之美”,测试开发工程师技术修炼小站,持续学习持续进步。
阅读本文前,请先阅读85.Robot Framework测试数据基本语法。本文介绍如何创建测试用例,创建测试套的方法在后面的88.Robot Framework创建测试套中介绍。使用Robot Framework框架进行自动化测试可以使用测试用例(Test case),进行一般化的自动化任务建议使用任务(Task)。任务的语法大部分与测试用例一致,差异部分在下一篇87.Robot Framework创建任务中介绍。
测试用例语法
基础语法
测试用例在测试用例表中定义,由关键字组成。关键字从测试库文件、资源文件中导入,或者在测试用例文件的关键字表(Keywords)中定义。
测试用例表的第一列是测试用例名。测试用例从包含测试用例名的行开始,直到下一个包含测试用例名的行或测试用例表结束。测试用例名不要包含通配符?
、*
,它们通常用于选择执行部分测试用例,例如--test 'Example *'
运行所有名字以Example
开头的测试用例。测试用例表表头和第一个测试用例之间不能包含其他内容。
测试用例表的第二列通常是关键字。在利用关键字返回的值设置变量的场景,第二列及后续列可能是变量名,然后才是关键字。无论哪种情况,关键字后面的列通常包含关键字的参数。
测试用例示例:
*** 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
测试用例表中的设置
测试用例可以有自己的设置。设置名和关键字一样在第二列,设置的值在后续的列中。测试用例中的设置名用方括号包围以便和关键字区分。设置名列表如下:
[Documentation]
:测试用例说明。[Tags]
:测试用例标签。[Setup]
、[Teardown]
:测试用例的setup、teardown。[Template]
:指定使用的模板关键字,测试用例中只包含作为模板关键字的参数的数据。[Timeout]
:测试用例超时时间。
设置名大小写不敏感,允许设置名和方括号之间存在空格。
带设置的测试用例举例:
*** Test Cases ***
Test With Settings
[Documentation] Another dummy test
[Tags] dummy owner-lmz
Log Hello, world!
设置表(Settings)中与测试用例相关的设置
设置表中存在如下与测试用例相关的设置(注意没有方括号包围),对测试文件中所有测试用例都生效:
Force Tags
、Default Tags
:测试用例中配置项[Tags]
的强制补充值和默认值。Test Setup
、Test Teardown
:测试用例中配置项[Setup]
和[Teardown]
的默认值。Test Template
:测试用例中默认使用的模板关键字。Test Timeout
:测试用例中配置项[Timeout]
的默认值。
关键字的参数
关键字可以接收不同的参数,参数可以有默认值,这些都取决于关键字如何实现。关键字的文档中通常包含其参数的使用说明。Libtool
或javadoc
工具可以自动生成文档。
位置参数
位置参数在关键字文档中通过逗号分割的参数名区分,例如first, second, third
。位置参数本身叫什么名字无所谓,重要的是参数的位置,但是参数名也最好能够解释位置参数的意义。使用关键字的时候,提供的参数个数要和关键字文档中说明的参数个数一致。
下面的例子中,使用OperatingSystem
库中的Create Directory
和Copy File
关键字,分别需要一个参数(path
)和两个参数(source
、destination
)。Builtin
库中的No Operation
关键字不需要参数。
*** Test Cases ***
Example
Create Directory ${TEMPDIR}/stuff
Copy File ${CURDIR}/file.txt ${TEMPDIR}/stuff
No Operation
默认值
有默认值的参数,在关键字文档中参数名和默认值以=
号分割,例如name=default value
。有默认值的参数后面不能有位置参数。
下面的例子中,Create File
关键字参数为path, content=, encoding=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
Java中一个方法可以通过不同签名有多种实现,Robot Framework将这样的多种实现作为一个关键字。可以利用这个特性实现有默认值的参数,例如:
public void oneDefault(String arg) {
System.out.println("Argument has value "