Given a user has a valid account
Create valid user
${USERNAME}
${PASSWORD}
When she changes her password
Change password
${USERNAME}
${PASSWORD}
...
${NEW PASSWORD}
Status should be
SUCCESS
Then she can log in with the new password
Login
${USERNAME}
${NEW PASSWORD}
And she cannot use the old password anymore
Attempt to login with credentials
${USERNAME}
${PASSWORD}
Status should be
Access Denied
用户定一个经常可以包含从其他用户定义关键词,内置关键词或者库关键词定义的动作。如在本例中所示,用户定义关键词可以携带参数。它们可以返回值设置包括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 |