RF的一个demo 续 4
上一篇 /
下一篇 2012-08-02 22:52:38
/ 个人分类:Robot framework
用户定一个经常可以包含从其他用户定义关键词,内置关键词或者库关键词定义的动作。如在本例中所示,用户定义关键词可以携带参数。它们可以返回值设置包括FOR循环。现在重要的是用户定义关键词使测试创建者能够为常用的动作序列创建可重用的步骤。用户定义关键词还可以帮助测试作者在不同的环境下尽可能保持测试测试可读性和使用恰当的抽象级别。
变量
定义变量
变量是Robot Framework 的组成部分。通常在测试中的可能变化的数据最好定义为变量。定义变量的语法非常简单,如下表所示:
Variable | Value |
${USERNAME} | janedoe |
${PASSWORD} | J4n3D0e |
${NEW PASSWORD} | e0D3n4J |
| |
${DATABASE FILE} | ${TEMPDIR}${/}robotframework-quickstart-db.txt |
| |
${PWD INVALID LENGTH} | Password must be 7-12 characters long |
${PWD INVALID CONTENT} | Password must be a combination of lowercase and uppercase letters and numbers |
变量也可以从命令行给定,以便于测试需要在不同的环境中执行。例如本demo可以像下面一样执行:
pybot --variable USERNAME:johndoe --variable PASSWORD:J0hnD0e quickstart.html
除了用户定义变量之外,还有一些内置变量也很有用。这些变量包括在上表中使用的${TEMPDIR} 和${/} 。
使用变量
变量可以在测试数据的大部分地方使用。如下面的测试用例所示它们最常用作关键词的参数。关键词的返回值也可以复制给变量以便在后面使用。例如下面的Database Should Contain 用户关键词设置数据库内容给${database} 变量,然后使用内置关键词Should Contain 验证内容。库和用户定义关键词口可以返回值。
Test Case | Action | Argument | Argument | Argument |
User status is stored in database | [Tags] | variables | database | |
| Create Valid User | ${USERNAME} | ${PASSWORD} | |
| Database Should Contain | ${USERNAME} | ${PASSWORD} | Inactive |
| Login | ${USERNAME} | ${PASSWORD} | |
| Database Should Contain | ${USERNAME} | ${PASSWORD} | Active |
Keyword | Action | Argument | Argument | Argument |
Database Should Contain | [Arguments] | ${username} | ${password} | ${status} |
| ${database} = | Get File | ${DATABASE FILE} | |
| Should Contain | ${database} | ${username}/t${password}/t${status} | |
组织测试用例
测试套件
在Robot Framework中测试用例的集合叫做测试套件。每个包含测试用例的输入文件组成一个测试套件。当运行本demo时,可以在控制台输出上看见测试套件Quickstart 。这个名字来自于文件名并且在报告和日志都可见。
可以通过将测试用例文件放置在目录中并将这些目录放在其他目录中来组织测试用例的层次。所有这些目录自动创建以目录名命名的高层次测试套件。因为测试套件知识文件和目录,它们很容易放置到任何版本管理系统中。
你可以通过在本指南的目录下运行如下命令来测试运行一个目录作为一个测试套件:
pybot .
启动和卸载
如果你希望让一系列动作在每个测试执行之前或之后发生,使用Test Setup 和 Test Teardown 设置如下:
Setting | Value |
Test Setup | Clear Login Database |
Test Teardown | |
同样你也可以使用Suite Setup 和 Suite Teardown 设置来指定在整个测试套件执行之前和之后执行的动作。
收藏
举报
TAG: