主要介绍RF基本的语法,变量,创建测试套件、测试case

测试数据分类

Robot Framework中数据通过section来区分,支持的section如下:

section

作用

Settings

  1. 导入测试库,资源文件和变量文件等;
  2. 定义测试套件和测试用例的元数据(metadata)

Variables

定义在测试数据任意位置都可以使用的变量

Test Cases

创建测试用例

Tasks

创建测试任务

Keywords

创建用户自定义的关键字

Comments

注释信息

说明:

  1. 推荐的section头格式为 *** Settings ***,但是是大小写敏感的,中间的空格是可选的,星号可以有很多个,但是至少要有一个*号;
  2. section的名称可以为单数,比如*setting;
  3. section行中也可以保护其它附加数据,但是要用不同的分隔符区分,一般用两个以上的空格。
  4. 官网提供的example3:

test里怎么创建测试类包 创建test文件_test里怎么创建测试类包

 

支持的文件格式

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

      

 

注意:

  1. 每行开头的管道符|是必须要有的,结尾的可有可无;
  2. 管道符可以不用和上一行的对齐

编辑器

纯文本格式的文件可以用通用的文本编辑器或者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编码保存文件。否则执行测试用例时会报错

test里怎么创建测试类包 创建test文件_后缀名_02

其它扩展文件

Robot Framework 建议的纯文本扩展名为.robot,也可以是.txt。但是3.1以后版本的Robot Framework,后缀名为.txt的文件不再自动的解析,必须用--extension显示的指定解析txt文件,否则执行的时候会有如下的警告信息:

test里怎么创建测试类包 创建test文件_test里怎么创建测试类包_03

如果想去掉警告信息的话有2种方法:

  1. 将文件后缀名改为.txt
  2. robot命令执行时加上--extension参数,显示指定文件的后缀名
robot --extension robot path/to/tests        # Only parse *.robot files
robot --extension ROBOT:TXT path/to/tests    # Parse *.robot and *.txt files

test里怎么创建测试类包 创建test文件_分隔符_04

 

数据解析规则

忽略的数据

Robot Framework解析数据文件的时候,以下内容会忽略:

  1. 注释
  2. 空行
  3. 单个的转义字符
  4. 以#开头的,也是注释
  5. 行尾未转义的空单元格
  6. 第一个section开始之前的所有数据