主要介绍RF基本的语法,变量,创建测试套件、测试case
测试数据分类
Robot Framework中数据通过section来区分,支持的section如下:
section | 作用 |
Settings |
|
Variables | 定义在测试数据任意位置都可以使用的变量 |
Test Cases | 创建测试用例 |
Tasks | 创建测试任务 |
Keywords | 创建用户自定义的关键字 |
Comments | 注释信息 |
说明:
- 推荐的section头格式为 *** Settings ***,但是是大小写敏感的,中间的空格是可选的,星号可以有很多个,但是至少要有一个*号;
- section的名称可以为单数,比如*setting;
- section行中也可以保护其它附加数据,但是要用不同的分隔符区分,一般用两个以上的空格。
- 官网提供的example3:
支持的文件格式
Robot Framework测试数据中支持纯文本格式、TSV(tab-separated values,类似于excel )格式、HTML格式等。
最常用的数据格式就是纯文本格式,也就是以.robot后缀名结尾的文件,.txt为扩展名结尾的文件也可以兼容。纯文本格式的文件是逐行解析的,在每一行中关键字和参数通过分隔符进行区分,分隔符可以是空格、管道符(“|”)和tab键。
空格分割
用2个以上的空格或者1个以上的tab键作为关键字和参数之间的分隔符,推荐用4个空格,例如:
*** Settings ***
Documentation Example using the space separated plain text format.
Library OperatingSystem
*** Variables ***
${MESSAGE} Hello, world!
*** Test Cases ***
My Test
[Documentation] Example test Log ${MESSAGE}
My Keyword /tmp
Another Test
Should Be Equal ${MESSAGE} Hello, world!
*** Keywords ***
My Keyword
[Arguments] ${path}
Directory Should Exist ${path}
注意:由于使用空格作为分隔符,那么如果是空的参数或者包含空格的参数就需要用反斜杠转义,或者使用内置的变量${EMPTY} 和${SPACE}
管道符分割
当关键字有很多参数,而且参数还包含空格的话,使用空格分割的话脚本写起来就会很繁琐,可读性也差,这时候就可以使用管道分隔符,如:
| *** Settings *** |
| Documentation | Example using the pipe separated plain text format.
| Library | OperatingSystem
| *** Variables *** |
| ${MESSAGE} | Hello, world!
| *** Test Cases *** | | |
| My Test | [Documentation] | Example test |
| | Log | ${MESSAGE} |
| | My Keyword | /tmp |
| Another Test | Should Be Equal | ${MESSAGE} | Hello, world!
| *** Keywords *** | | |
| My Keyword | [Arguments] | ${path} |
| | Directory Should Exist | ${path} |
如果参数中本身有|符号的话就需要用反斜杠转义,如:
| *** Test Cases *** | | | |
| Escaping Pipe | ${file count} = | Execute Command | ls -1 *.txt \| wc -l |
| | Should Be Equal | ${file count} | 42
注意:
- 每行开头的管道符|是必须要有的,结尾的可有可无;
- 管道符可以不用和上一行的对齐
编辑器
纯文本格式的文件可以用通用的文本编辑器或者IDE进行编辑。支持Robot Framework有:
*** Settings ***
Documentation Example using the space separated plain text format.
Library OperatingSystem
*** Variables ***
${MESSAGE} Hello, world!
*** Test Cases ***
My Test
[Documentation] Example test Log ${MESSAGE}
My Keyword /tmp
Another Test
Should Be Equal ${MESSAGE} Hello, world!
RIDE是单独的编辑工具,有一些是以插件的形成提供给文本编辑器,接下来我们主要用RIDE进行说明。
注意:不管使用任何的编辑器,纯文本格式的文件中如果包含非ASCII码的字符时必须要用UTF-8编码保存文件。否则执行测试用例时会报错
其它扩展文件
Robot Framework 建议的纯文本扩展名为.robot,也可以是.txt。但是3.1以后版本的Robot Framework,后缀名为.txt的文件不再自动的解析,必须用--extension显示的指定解析txt文件,否则执行的时候会有如下的警告信息:
如果想去掉警告信息的话有2种方法:
- 将文件后缀名改为.txt
- robot命令执行时加上--extension参数,显示指定文件的后缀名
robot --extension robot path/to/tests # Only parse *.robot files
robot --extension ROBOT:TXT path/to/tests # Parse *.robot and *.txt files
数据解析规则
忽略的数据
Robot Framework解析数据文件的时候,以下内容会忽略:
- 注释
- 空行
- 单个的转义字符
- 以#开头的,也是注释
- 行尾未转义的空单元格
- 第一个section开始之前的所有数据