分类: 项目管理
2009-08-27 10:42:46
磁针石:xurongzhong#gmail.com
* 文件和目录:
在测试用例文件中创建测试用例,并自动生成test suite。多个测试用例文件所在的目录组成高级的test suite目录。test suite目录可以嵌套,可以有特殊的初始化文件。
除此之外还有测试库包含低级关键字;拥有变量和高级用户关键字的资源文件;更方便创建变量的变量文件。
* 支持的文件格式:
采用表格的形式,HTML、TSV、reST。基于扩展名选择:.html, .htm and .xhtml for HTML, .tsv for TSV, and .rst or .rest for reStructuredText.
HTML格式举例:
Setting |
Value |
Value |
Value |
Library |
OperatingSystem |
|
|
|
|
|
|
Variable |
Value |
Value |
Value |
${MESSAGE} |
Hello, world! |
|
|
|
|
|
|
Test Case |
Action |
Argument |
Argument |
My Test |
[Documentation] |
Example test |
|
|
Log |
${MESSAGE} |
|
|
My Keyword |
/tmp |
|
|
|
|
|
Another Test |
Should Be Equal |
${MESSAGE} |
Hello, world! |
Keyword |
Action |
Argument |
Argument |
My Keyword |
[Arguments] |
${path} |
|
|
Directory Should Exist |
${path} |
|
可以使用WORD或者Robot IDE编辑。
其他格式暂略。
* 测试数据表:
Table name |
Used for |
Aliases |
Setting table |
1) Importing test libraries, resource files and variable files 2) Defining metadata for test
suites and test
cases |
Setting, Settings, Metadata |
Variable table |
Defining variables
that can be used elsewhere in the test data |
Variable, Variables |
Test case table |
Creating
test cases from available keywords |
Test Case, Test Cases |
Keyword table |
Creating
user keywords from existing lower-level keywords |
Keyword, Keywords, User Keyword, User
Keywords |
* 解析数据的规则:
空的表格单元要使用${EMPTY}或者\。空格有${SPACE}。
参数等续行的方法:
Setting |
Value |
Value |
Value |
Default Tags |
tag-1 |
tag-2 |
tag-3 |
... |
tag-4 |
tag-5 |
tag-6 |
Variable |
Value |
Value |
Value |
@{LIST} |
this |
list |
has |
... |
quite |
many |
items |
Test Case |
Action |
Argument |
Argument |
Argument |
Example |
[Documentation] |
Documentation |
for this |
test case. |
|
... |
This can get |
quite |
long... |
|
[Tags] |
t-1 |
t-2 |
t-3 |
|
... |
t-4 |
t-5 |
|
|
Do X |
one |
two |
three |
|
... |
four |
five |
six |
|
${var} = |
Get X |
1 |
2 |
|
... |
3 |
4 |
5 |
|
... |
6 |
|
|
* 测试用例语法
测试用例示例:
Test Case |
Action |
Argument |
Argument |
Valid Login |
Open Login Page |
|
|
|
Input Name |
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 Case |
|
User Name |
Password |
Invalid User Name |
Login With Invalid Credentials Should Fail |
invalid |
mode |
Invalid Password |
Login With Invalid Credentials Should Fail |
demo |
invalid |
Invalid User Name And Password |
Login With Invalid Credentials Should Fail |
invalid |
whatever |
Empty User Name |
Login With Invalid Credentials Should Fail |
|
mode |
Empty Password |
Login With Invalid Credentials Should Fail |
demo |
\ |
Empty User Name And Password |
Login With Invalid Credentials Should Fail |
|
\ |
测试用例表设置:
示例:
Test Case |
Action |
Argument |
Argument |
Test With Settings |
[Documentation] |
Another dummy test |
|
|
[Tags] |
dummy |
owner-johndoe |
|
Log |
Hello, world! |
|
主要有[Documentation]、[Tags]、[Setup], [Teardown] 、[Precondition] and [Postcondition]、[Timeout]等标识。
* 测试用例名字和文档
Test Case |
Action |
Argument |
Argument |
Simple |
[Documentation] |
Simple documentation |
|
|
No Operation |
|
|
Splitting |
[Documentation] |
This documentation is a bit longer and |
it has been split into several columns. |
|
No Operation |
|
|
Formatting |
[Documentation] |
*This is bold*, _this italic_ and |
here is a link: |
|
No Operation |
|
|
Variables |
[Documentation] |
Executed at ${HOST} by ${USER} |
|
|
No Operation |
|
|
一般情况下是不需要文档的。
* 标签测试用例
Force Tags
Default Tags
[Tags]
--settag
Set Tags and Remove Tags
Tagging example |
|||
Setting |
Value |
Value |
Value |
Force Tags |
req-42 |
|
|
Default Tags |
owner-john |
smoke |
|
Variable |
Value |
Value |
Value |
${HOST} |
|
|
|
Test Case |
Action |
Argument |
Argument |
No own tags |
[Documentation] |
This test has tags |
owner-john, smoke, req-42 |
|
No Operation |
|
|
|
|
|
|
With own tags |
[Documentation] |
This test has tags |
not_ready, owner-mrx, req-42 |
|
[Tags] |
owner-mrx |
not_ready |
|
No Operation |
|
|
|
|
|
|
Own tags with variables |
[Documentation] |
This test has tags |
host- |
|
[Tags] |
host-${HOST} |
|
|
No Operation |
|
|
|
|
|
|
Empty own tags |
[Documentation] |
This test has tags |
req-42 |
|
[Tags] |
|
|
|
No Operation |
|
|
|
|
|
|
Set Tags and Remove Tags Keywords |
[Documentation] |
This test has tags |
mytag, owner-john |
|
Set Tags |
mytag |
|
|
Remove Tags |
smoke |
req-* |
* 测试配置和拆卸
Setting |
Value |
Value |
Value |
Test Setup |
Open Application |
App A |
|
Test Teardown |
Close Application |
|
|
Test Case |
Action |
Argument |
Argument |
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] |
|
|
|
|
|
|
Using variables |
[Documentation] |
Setup and teardown |
given as variables |
|
[Setup] |
${SETUP} |
|
|
Do Something |
|
|
|
[Teardown] |
${TEARDOWN} |
|
Setup and teardown synonyms |
|
Test Setup |
Test Precondition |
Test Teardown |
Test Postcondition |
[Setup] |
[Precondition] |
[Teardown] |
[Postcondition] |
* 测试用例文件
Documentation
Used for
specifying a test suite documentation
Used for setting
free test suite metadata.
Suite Setup, Suite Teardown
Specify suite setup and teardown. Have also
synonyms Suite Precondition and Suite
Postcondition,
respectively.
* 测试用例目录
注意下划线和点号开头的文件被忽略。
初始化文件:__init__.extension
* Test suite 名字和文档
Test suite documentation
example |
|||
Setting |
Value |
Value |
Value |
Documentation |
An example test suite |
documentation with |
*some* _formatting_. |
... |
See test documentation |
for more documentation |
examples. |
* 免费Test suite元数据
Setting |
Value |
Value |
Value |
|
2.0 |
|
|
|
For more information |
about *Robot Framework* |
see |
|
${HOST} |
|
|
* suite配置和拆卸
Suite Precondition and Suite Postcondition,
* 使用测试库
导入库
Importing test libraries |
|||
Setting |
Value |
Value |
Value |
Library |
OperatingSystem |
|
|
Library |
com.company.TestLib |
|
|
Library |
MyLibrary |
arg1 |
arg2 |
Library |
${LIBRARY} |
|
|
导入库关键字:
Test Case |
Action |
Argument |
Argument |
Argument |
Example |
Do Something |
|
|
|
|
Import Library |
MyLibrary |
arg1 |
arg2 |
|
KW From Mylibrary |
|
|
|
使用绝对路径导入:
Setting |
Value |
Value |
Value |
Library |
PythonLib.py |
|
|
Library |
/absolute/path/JavaLib.java |
|
|
Library |
relative/path/PythonDirLib/ |
possible |
arguments |
Library |
${RESOURCES}/Example.class |
|
|
* 设定自定义名字和测试库
自定义名字:
Setting |
Value |
Value |
Value |
Library |
com.company.TestLib |
WITH NAME |
TestLib |
Library |
${LIBRARY} |
WITH NAME |
MyName |
使用不同名字导入同一库。
Setting |
Value |
Value |
Value |
Value |
Value |
Library |
SomeLibrary |
localhost |
1234 |
WITH NAME |
LocalLib |
Library |
SomeLibrary |
server.domain |
8080 |
WITH NAME |
RemoteLib |
Test Case |
Action |
Argument |
Argument |
My Test |
LocalLib.Some Keyword |
some arg |
second arg |
|
RemoteLib.Some Keyword |
another arg |
whatever |
|
LocalLib.Another Keyword |
|
|
* 标准库
略