目录
BuiltIn是robot framework的标准库,提供了最通用和最常用的关键字,使用时会自动导入,下面我们只介绍使用频率较多的一些关键字,如果用到了其它关键字时,去官网查看相关的用法即可,文档的官网:http://robotframework.org/robotframework/#user-guide
Log/Log Many
作用:打印信息,能够设置打印的级别
语法:
Name: Log
Source: BuiltIn <test library>
Arguments:
[ message | level=INFO| html=False| console=False| repr=str| formatter=str]
参数说明:
- message :要打印的信息
- level:消息的级别,支持TRACE, DEBUG, INFO (默认), HTML, WARN和ERROR。如果是WARN和ERROR级别的信息,在命令行下是可见的
- html:表示打印的是HTML语法的消息
- console:为true的话表示log文件中记录的信息也会在命令行打印一遍
- formatter:用来控制字符串输出的个格式,包括str (默认), repr and ascii,和python中的类似
- repr:和formatter作用类似,即将被废弃的参数,repr=True等价于 formatter=repr
示例:
*** Test Cases ***
Example
Log Hello, world! # Normal INFO message.
Log Warning, world! WARN # Warning.
Log <b>Hello</b>, world! html=yes # INFO message as HTML.
Log <b>Hello</b>, world! HTML # Same as above.
Log <b>Hello</b>, world! DEBUG html=true # DEBUG as HTML.
Log Hello, console! console=yes # Log also to the console.
Log Null is \x00 formatter=repr # Log 'Null is \x00'.
执行结果:
Log Many:和Log类似,只是能同时打印多个信息
示例:
*** Test Cases ***
Log Many Example
@{list} = Create List 1 2 3
&{dict} = Create Dictionary key=value foo=bar
Log Many Hello robot
Log Many @{list} &{dict}
执行结果:
robot -t Log_Many_Example log.robot
注意:命令行下指定用例名用-t参数,如果用例名有空格,那么输入的时候用下划线_代替否则会按参数去解析执行
Library
作用:导入指定的库,就可以使用库中的关键字
语法:
Name:Import Library
Source:BuiltIn <test library>
Arguments:[ name | *args ]
示例:
*** Settings ***
Library AppiumLibrary
Set Variable
作用:给一个变量赋值,局部变量
语法:
Name:Set Variable
Source:BuiltIn <test library>
Arguments:[ *values ]
示例:
*** Test Cases ***
Example
# 将字符串赋值给一个变量
${hi} = Set Variable Hello, world!
# 将变量赋值给变量
${hi2} = Set Variable I said: ${hi}
# 同时给2个变量赋值
${var1} ${var2} = Set Variable Hello world
# 给一个列表变量赋值
@{list} = Set Variable 1 2 3 4
# 将数字赋值给变量
${item1} ${item2} = Set Variable 1 2
执行结果:
Set Suite Variable
作用:定义一个suite级别的变量,在当前测试套件内均是可用的。如果定义的变量和变量表一致的话,就会发生变量覆盖。suite级别的变量在子suite默认是不可见的,如果想在子suite中使用的话就用children=true作为Set Suite Variable最后一个参数即可。
语法:
Name:Set Suite Variable
Source:BuiltIn <test library>
Arguments:[ name | *values ]
示例:
*** Test Cases ***
Example2
# 定义一个suite级别字符串变量${SCALAR}
Set Suite Variable ${SCALAR} Hello, world!
# 重新给变量${SCALAR}赋值
Set Suite Variable ${SCALAR} Hello, world! children=true
# 定义一个suite级别列表变量${LIST}
Set Suite Variable @{LIST} First item Second item
# 定义一个suite级别字典变量${DICT}
Set Suite Variable &{DICT} key=value foo=bar
# 将${DICT}值赋给${ID}
${ID} = Get Variable Value &{DICT}
# 将${ID}设置为suite级别的变量
Set Suite Variable ${ID}
Example3
# 直接使用Example2定义的uite级别的变量
Log Many &{DICT}
执行结果:
Catenate
作用:将给定的数据拼接,以字符串的形式返回。默认情况下用空格连接,如果想改变连接符的话,需要在调用此关键字时通过第一个参数SEPARATOR=<sep>指定分割符
语法:
Name:Catenate
Source:BuiltIn <test library>
Arguments:[ *items ],可变参数
示例:
*** Test Cases ***
Example
${str1} = Catenate Hello world #空格
${str2} = Catenate SEPARATOR=--- Hello world #---
${str3} = Catenate SEPARATOR= Hello world #无分隔符
log ${str1} console=yes
log ${str2} console=yes
log ${str3} console=yes
执行结果:
Create Dictionary
作用:生成一个字典,和Python中的类似
语法:
Name: Create Dictionary
Source: BuiltIn <test library>
Arguments: [ *items ]
如果想要转换成Python的字典可以使用Collections库中的Convert To Dictionary方法
示例1:Create Dictionary创建字典的几种方式
*** Test Cases ***
Example1
# 方式一:key=value syntax
&{dict} = Create Dictionary key=value foo=bar
Should Be True ${dict} == {'key': 'value', 'foo': 'bar'}
# 方式二:separate key and value
&{dict2} = Create Dictionary key value foo bar
Should Be Equal ${dict} ${dict2}
# 方式三:使用变量
&{dict} = Create Dictionary ${1}=${2} &{dict} foo=new
Should Be True ${dict} == {1: 2, 'key': 'value', 'foo': 'new'}
# 通过点访问字典的key
Should Be Equal ${dict.key} value # dot-access
说明:
- 用key=value的形式生成的字典最终是key:value的形式存在的;
- 用key=value的形式生成字典还可以分别列出key,value也可以生成字典,见方式二
- 可以通过.访问字典中的key
- 等号=可以没有
执行结果:
示例2:Create Dictionary创建的字典和Variables定义的是等价的
*** Variables ***
&{d} key=value foo=bar #定义一个字典变量
*** Test Cases ***
Example2
Log Many &{d}
&{dict} = Create Dictionary key=value foo=bar
Should Be Equal ${dict} ${d}
执行结果:
Create List
作用:生成一个列表,和Python中的类似
语法:
Name: Create List
Source: BuiltIn <test library>
Arguments: [ *items ]
参数可以是变量类似${1}这种形式
示例1:Create List创建列表的几种方式
*** Test Cases ***
Example
# 创建好的列表赋值给列表变量
@{list} Create List a b c
# 创建好的列表赋值给标量
${scalar} Create List a b c
Log Many @{list}
Log ${scalar}
# 创建数字类型的列表
${ints} Create List ${1} ${2} ${3}
Log Many ${ints}
执行结果:
说明:
- Create List生成的列表可以赋值个另一个列表,也可以赋值给一个标量,但是并不是一个字典,而是作为一个字符串整体;
- 参数可以是数字变量