您的位置:首页 > 编程语言 > Python开发

python 自动化测试平台 Robot Framework 内置库 翻译

2015-10-27 17:38 579 查看
python 自动化测试平台 Robot Framework 内置库 翻译

1.1 概述
#2012-02-16 磁针石

#承接软件自动化实施与培训 验证码破解 软件破解 脚本开发 测试和python培训等

#gtalk: ouyangchongwu#gmail.com qq 37391319 博客:testing.blog.chinaunix.net

#版权所有,转载刊登请来函联系

#自动化测试和python群组: http://groups.google.com/group/automation_testing_python

#python qq group: 深圳自动化测试python群:113938272

#武冈深圳qq群:66250781 都梁深圳湖南户外群:49494279

#参考资料:

Normal 0 7.8 pt 0 2 false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0cm
5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.5pt; mso-bidi-font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-font-kerning:1.0pt;} BuiltIn
版本:2.6.3
范围:global
命名参数:支持
介绍
BuiltIn是Robot Framework标准库,提供了常用关键字。它自动导入,从而始终可用。 提供的关键字有用于验证的(e.g. Should
Be Equal, Should Contain),转换的(e.g. Convert
To Integer),其他(e.g. Log, Sleep, Run
Keyword If, Set Global Variable)。
所有关键字如下:
Call Method · Catenate · Comment · Convert To Binary · Convert To Boolean · Convert To Hex · Convert To Integer · Convert To Number · Convert To Octal · Convert To String · Create List · Evaluate · Exit For Loop · Fail · Fatal Error · Get Count · Get Length · Get Library Instance · Get Time · Get Variable Value · Get Variables · Import Library · Import Resource · Import Variables · Keyword Should Exist · Length Should Be · Log · Log Many · Log Variables · No Operation · Regexp Escape · Remove Tags · Repeat Keyword · Replace Variables · Run Keyword · Run Keyword And Continue On Failure · Run Keyword And Expect Error · Run Keyword And Ignore Error · Run Keyword If · Run Keyword If All Critical Tests Passed · Run Keyword If All Tests Passed · Run Keyword If Any Critical Tests Failed · Run Keyword If Any Tests Failed · Run Keyword If Test Failed · Run Keyword If Test Passed · Run Keyword If Timeout Occurred · Run Keyword Unless · Run Keywords · Set Global Variable · Set Library Search Order · Set Log Level · Set Suite Variable · Set Tags · Set Test Message · Set Test Variable · Set Variable · Set Variable If · Should Be Empty · Should Be Equal · Should Be Equal As Integers · Should Be Equal As Numbers · Should Be Equal As Strings · Should Be True · Should Contain · Should Contain X Times · Should End With · Should Match · Should Match Regexp · Should Not Be Empty · Should Not Be Equal · Should Not Be Equal As Integers · Should Not Be Equal As Numbers · Should Not Be Equal As Strings · Should Not Be True · Should Not Contain · Should Not End With · Should Not Match · Should Not Match Regexp · Should Not Start With · Should Start With · Sleep · Variable Should Exist · Variable Should Not Exist · Wait Until Keyword Succeeds
关键字介绍
关键字
参数
文档
Call Method
object, method_name, *args
使用参数args调用对象object的方法method_name。
方法可能返回值可以赋值给一个变​​量。
当找不到方法或者方法产生异常时,Keyword会失败。

例子:
Call Method
${hashtable}
put
myname
myvalue
${isempty} =
Call Method
${hashtable}
isEmpty
Should Not Be True
${isempty}
${value} =
Call Method
${hashtable}
get
myname
Should Be Equal
${value}
myvalue
Catenate
Catenate
连接给定参数,返回字符串。
默认用空格连接参数项目,如果第一个参数为'SEPARATOR=<sep>',则使用”sep”来连接.

例子:
${str1} =
Catenate
Hello
world
${str2} =
Catenate
SEPARATOR=---
Hello
world
${str3} =
Catenate
SEPARATOR=
Hello
world
实际结果:
=>
- ${str1} = 'Hello world'
- ${str2} = 'Hello---world'
- ${str3} = 'Helloworld'
Comment
*messages
在日志文件中以关键字参数形式显示指定信息。
Comment对参数不进行任何处理,仅仅是显示在日志中,用于显示简单信息。
如果要显示变量值,可以使用Log 或 Log
Many关键字。
Convert To Binary
item, base=None, prefix=None, length=None
转换参数为二进制字符串。
如果添加了base参数,则先内部使用Convert
To Integer转换为整数,然后再转换为二进制数字,以字符串的形式显示,比如”1011“。
返回值可以包含可选的前缀和最小长度(不包含前缀和负号等)。如果返回值比要求的长度短,则使用0填充。

例子:
${result} =
Convert To Binary
10
# Result is 1010
${result} =
Convert To Binary
F
base=16
prefix=0b
# Result is 0b1111
${result} =
Convert To Binary
-2
prefix=B
length=4
# Result is -B0010
Convert To Boolean
item
转换参数为布尔值true或false。
如果参数是字符串'True'(不区分大小写)就返回真,为'False'就返回假;其他情况调用Python的'bool'的方法来判断。请参阅http://docs.python.org/lib/truth.html
Convert To Hex
item, base=None, prefix=None, length=None, lowercase=False
转换参数为十六进制字符串。
如果添加了base参数,则先内部使用Convert
To Integer转换为整数,然后再转换为十六进制数字,以字符串的形式显示,比如'FF0A'。
返回值可以包含可选的前缀和最小长度(不包含前缀和负号等)。如果返回值比要求的长度短,则使用0填充。
默认返回大写字符串,lowercase参数会转换值为小写(不包含前缀)。

例子:
${result} =
Convert To Hex
255
# Result is FF
${result} =
Convert To Hex
-10
prefix=0x
length=2
# Result is -0x0A
${result} =
Convert To Hex
255
prefix=X
lowercase=yes
# Result is Xff
Convert To Integer
item, base=None
转换参数为整数。
如果参数是字符串,则默认转为十进制整数。使用其他进制可以用base指定或者添加前缀,比如0b表示2进制,0o表示8进制,0x表示16进制。前缀只有当无base参数才可以添加,前缀的前面还可以添加加减等符号。
语法不区分大小写并忽略空格

例子:
${result} =
Convert To Integer
100
# Result is 100
${result} =
Convert To Integer
FF AA
16
# Result is 65450
${result} =
Convert To Integer
100
8
# Result is 64
${result} =
Convert To Integer
-100
2
# Result is -4
${result} =
Convert To Integer
0b100
# Result is 4
${result} =
Convert To Integer
-0x100
# Result is -256
Convert To Number
item, precision=None
转换参数为浮点数。
如果可选参数precision是正数或零,返回的四舍五入的值。负数则相当于修改-precision位数为0
如果可选参数precision是负数,返回的四舍五入的值。

例子:
${result} =
Convert To Number
42.512
# Result is 42.512
${result} =
Convert To Number
42.512
1
# Result is 42.5
${result} =
Convert To Number
42.512
0
# Result is 43.0
${result} =
Convert To Number
42.512
-1
# Result is 40.0
注意机器一般不能准确地存储浮点数。参见http://docs.python.org/tutorial/floatingpoint.html
Convert To Octal
item, base=None, prefix=None, length=None
转换参数为八进制字符串。
如果添加了base参数,则先内部使用Convert
To Integer转换为整数,然后再转换为八进制数字,以字符串的形式显示,比如'775''。
返回值可以包含可选的前缀和最小长度(不包含前缀和负号等)。如果返回值比要求的长度短,则使用0填充。
默认返回大写字符串,lowercase参数会转换值为小写(不包含前缀)。

例子:
${result} =
Convert To Octal
10
# Result is 12
${result} =
Convert To Octal
-F
base=16
prefix=0
# Result is -017
${result} =
Convert To Octal
16
prefix=oct
length=4
# Result is oct0020
Convert To String
item
转换参数为Unicode字符串。
针对Python对象使用“__unicode__'或'__str__’方法。
Create List
*items *项目
根据指定参数创建列表。
返回的列表都用来给$ {标量}和@{列表}变量赋值。

例子:
@{list} =
Create List
a
b
c
${scalar} =
Create List
a
b
c
${ints} =
Create List
${1}
${2}
${3}
Evaluate
expression, modules=None
用Python计算表达式并返回结果。
modules参数可用于导入一些逗号分隔模块列表到表达式计算的名字空间。

的进口和计算表达式的命名空间添加到Python模块列表。
modules argument can be used to specify a comma separated list of Python modules to be imported and added to the namespace of the evaluated expression .评估在Python表达式,并返回结果。 模块参数可用于指定一个逗号分隔的进口和计算表达式的命名空间添加到Python模块列表。

例子: (假定 ${result} 为 3.14):
:
${status} =
Evaluate
0 < ${result} < 10
${down} =
Evaluate
int(${result})
${up} =
Evaluate
math.ceil(${result})
math
${random} =
Evaluate
random.randint(0, sys.maxint)
random,sys
=>
- ${status} = True
- ${down} = 3
- ${up} = 4.0
- ${random} = <random integer>

注意:如果表达式很复杂,建议在测试库中实现逻辑。
Exit For Loop
立即停止执行for循环。
例子:
:FOR
${var}
IN
@{SOME LIST}
Run Keyword If
'${var}' == 'EXIT'
Exit For Loop
Do Something
${var}
Fail
msg=None
停止执行当前测试用例,
Fatal Error
msg=None
停止执行整个测试。 后续用例不会执行,可能的teardown也不会执行。
Get Count
item1, item2
返回并在日志中记录item2在Item1中出现的次数。
此关键字适用于Python字符串和列表和所有具有'count'方法和以及可转换为Python列表的对象。

例子:
${count} =
Get Count
${some item}
interesting value
Should Be True
5 < ${count} < 10
Get Length
item
返回并在日志中记录item的长度。
item可以是任何有一个长度的对象,例如,字符串,列表,或映射。
关键字首先试图用Python函数len函数(内部调用item的__len__方法)得到的长度。如果失败,关键字尝试直接调用item's的可能的length和size的方法。最后试图获得该项目的length属性值。如果所有这些尝试不成功的,关键字Fail。
可以使用列表,但是要作为标量来使用,比如(e.g. ${LIST})。
Get Library Instance
name
返回指定测试库的当前活动实例。
该关键字可以是测试库和其他有状态的测试库进行交互。比如:
from robot.libraries.BuiltIn import BuiltIn

def title_should_start_with(expected):
seleniumlib = BuiltIn().get_library_instance('SeleniumLibrary')
title = seleniumlib.get_title()
if not title.startswith(expected):
raise AssertionError("Title '%s' did not start with '%s'"
% (title, expected))

它也可以使用这个关键字,在测试数据,并返回库实例传递 到另一个关键字。 If a library is imported with a custom name, the name used to get the instance must be that name and not the original library name.如果一个库导入一个自定义名称, 名称中使用的实例必须是这个名字,而不是原来的库名称。
Get Time
format=timestamp, time=NOW
根据指定格式获取时间。
不区分大小写。
1) 如果格式中包含epoch,返回的是(Jan 1, 1970 0:00:00)开始的秒数。
2) 如果格式包含任何'year', 'month', 'day', 'hour', 'min', or 'sec',则返回对应部分。
3) 默认格式'2006-02-24 15:08:31'
默认返回当前时间。
1) 如果是浮点数,解释为自epoch以来的秒数
2) 有效的时间戳,比如:'YYYY-MM-DD hh:mm:ss' and 'YYYYMMDD hhmmss'
3) 'NOW',不区分大小写,为当前时间
4) 'NOW - 1 day' 或 'NOW + 1 hour 30 min' 等则会计算时间
例子:假定当前时间是2006-03-29 15:06:21
${time} =
Get Time
${secs} =
Get Time
epoch
${year} =
Get Time
return year
${yyyy}
${mm}
${dd} =
Get Time
year,month,day
@{time} =
Get Time
year month day hour min sec
${y}
${s} =
Get Time
seconds and year
=>
- ${time} = '2006-03-29 15:06:21'
- ${secs} = 1143637581
- ${year} = '2006'
- ${yyyy} = '2006', ${mm} = '03', ${dd} = '29'
- @{time} = ['2006', '03', '29', '15', '06', '21']
- ${y} = '2006' - ${s} = '21'

${time} =
Get Time
1177654467
${secs} =
Get Time
sec
2007-04-27 09:14:27
${year} =
Get Time
year
NOW
# The time of execution
${day} =
Get Time
day
NOW - 1d
# 1 day subtraced from NOW
@{time} =
Get Time
hour min sec
NOW + 1h 2min 3s
# 1h 2min 3s added to NOW
=>
=>
- ${time} = '2007-04-27 09:14:27'
- ${secs} = 27
- ${year} = '2006'
- ${day} = '28'
- @{time} = ['16', '08', '24']
Get Variable Value
name, default=None
返回变量值,如果变量不存在就返回default。
变量名可以是常规的变量名比如(eg ${NAME} )或者转义格式\${NAME}。注意,前者有一定的局限性, 见Set Suite Variable关键字中的解释。
例子:
${x} =
Get Variable Value
${a}
default
${y} =
Get Variable Value
${a}
${b}
${z} =
Get Variable Value
${z}
Get Variables
返回包含在当前范围内的所有变量的字典。
Import Library
name, *args
在test suite导入库。
可以在测试执行时动态导入库。支持库名和绝对路径导入。使用'WITH NAME'还可以更改库名。
例子:
Import Library
MyLibrary
Import Library
${CURDIR}/Library.py
some
args
Import Library
${CURDIR}/../libs/Lib.java
arg
WITH NAME
JavaLib
Import Resource
path
在test suite导入资源文件。
path必须是绝对路径。斜线作为路径分隔符(包含Windows)。

例子:
Import Resource
${CURDIR}/resource.txt
Import Resource
${CURDIR}/../resources/resource.html
Import Variables
path, *args
在test suite导入变量文件。
path必须是绝对路径。斜线作为路径分隔符(包含Windows)。

例子:
Import Variables
${CURDIR}/variables.py
Import Variables
${CURDIR}/../vars/env.py
arg1
arg2
Keyword Should Exist
name, msg=None
Fail除非关键字在当前作用域存在。
有多个同名的关键字存在也会Fail。
Length Should Be
item, length, msg=None
验证item的长度。
通过关键字Get
Length获取item的长度。
Log
message, level=INFO
在指定日志级别下记录message。
有效的日志级别有TRACE, DEBUG, INFO (default), HTML and WARN。HTML可以写不转义的HTML代码。例如<img src="image.png">在HTML日志级别将创建一个图像,但其他级别仅仅是显示字符串。注意,无效的HTML会破坏整个日志文件,一定要谨慎使用。HTML消息实际上是使用了INFO级别。
WARN级别记录的消息将在控制台和日志中测试执行的错误部分都可以看到。
Log Many
*messages
在INFO级别下记录messages为独立的条目。
Log Variables
level=INFO
在日志中记录当前所有变量。
No Operation
无操作,不做任何事情。
Regexp Escape
*patterns
对字符串中的非字母数字进行转义。
这个关键字可以用来转义关键字Should
Match Regexp和Should
Not Match Regexp使用的字符串。
转义使用python中的re.escape()函数。

例子:
${escaped} =
Regexp Escape
${original}
@{strings} =
Regexp Escape
@{strings}
Remove Tags
*tags
从当前测试用例或suite中删除标签 。
Tag可以使用模式,'*'匹配所有字符,“?”单个字符。
例子:
Remove Tags
mytag
something-*
?ython
Repeat Keyword
times, name, *args
执行指定的关键字times次。
Times为整数或可以转换为整数的字符串。为了提高可读性,还可以在'times'后添加后缀'times' or 'x'(不区分大小写,去掉多余空格)。
例子:
Repeat Keyword
5 times
Goto Previous Page
Repeat Keyword
${var}
Some Keyword
arg1
arg2
Replace Variables
text
替换text中的变量。
如果文本中没有包含变量,关键字Fail。
例子:假定文件“template.txt”的内容为“Hello $ {NAME}!”,变量的'${NAME}'的值为'Robot'。
${template} =
Get File
${CURDIR}/template.txt
${message} =
Replace Variables
${template}
Should Be Equal
${message}
Hello Robot!
如果text只有一个变量,返回值为原来的对象。否则返回字符串。
Run Keyword
name, *args
根据参数args执行关键字name。
name可以动态设定,例如,来自另一个关键字的返回值或命令行。
Run Keyword And Continue On Failure
name, *args
根据参数args执行关键字name,错误时依旧继续执行。

例如:
Run Keyword And Continue On Failure
Fail
This is a stupid example
Log
This keyword is executed
Run Keyword And Expect Error
expected_error, name, *args
根据参数args执行关键字name,预期捕获到错误:expected_error。
预期的错误必须和Robot Framework报告中的相同。它可以是一个模式,'*'匹配所有字符,“?”匹配单个字符。捕获到预期错误,返回错误消息,否则关键字Fail。

例子:
Run Keyword And Expect Error
My error
Some Keyword
arg1
arg2
${msg} =
Run Keyword And Expect Error
*
My KW
Should Start With
${msg}
Once upon a time in
Run Keyword And Ignore Error
name, *args
根据参数args执行关键字,并忽略错误。
此关键字返回两个值,第一个是是“PASS”或'FAIL',第二个值是返回值或者或收到的错误消息。
Run Keyword If
condition, name, *args
如果condition为真,根据参数args执行关键字。
例子:a simple if/else construct:
${status}
${value} =
Run Keyword And Ignore Error
My Keyword
Run Keyword If
'${status}' == 'PASS'
Some Action
Run Keyword Unless
'${status}' == 'PASS'
Another Action
Run Keyword If All Critical Tests Passed
name, *args
如果所有Critical测试用例通过,则根据参数args执行关键字。
只能用于suite teardown。
Run Keyword If All Tests Passed
name, *args
如果所有测试用例通过,则根据参数args执行关键字。
只能用于suite teardown。
Run Keyword If Any Critical Tests Failed
name, *args
如果有Critical测试用例Fail,则根据参数args执行关键字。
只能用于suite teardown。
Run Keyword If Any Tests Failed
name, *args
如果有测试用例Fail,则根据参数args执行关键字。
只能用于suite teardown。
Run Keyword If Test Failed
name, *args
如果测试用例Fail,则根据参数args执行关键字。
只能用于test teardown。
Run Keyword If Test Passed
name, *args
如果测试用例Pass,则根据参数args执行关键字。
只能用于test teardown。
Run Keyword If Timeout Occurred
name, *args
如果测试用例超时,则根据参数args执行关键字。
只能用于test teardown。
Run Keyword Unless
condition, name, *args
如果condition为假,根据参数args执行关键字。
Run Keywords
*names
无参数地执行所有关键字。
主要用于setups 和 teardowns中,不想创建更高级别的关键字但是有很多很多动作要进行。

例子:
Setting
Value
Value
Value
Suite Setup
Run Keywords
Initialize database
Start servers
Set Global Variable
name, *values
设置全局变量。
和命令行使用'--variable' or '--variablefile'创建的效果一样。
Set Library Search Order
*libraries
设置库查找顺序。
使用关键字的时候可以不使用库名,比如Keyword 和MyLibrary.Keyword效果一样,清晰起见,还是建议带上库名。
注:文件中的关键字比库中的有更高的优先级。所有名字不区分大小写,会忽略多余的空格。
Set Log Level
level
设置log级别并返回就的log级别。
默认级别是INFO.可用的log级别有:TRACE, DEBUG, INFO (default), WARN and NONE (no logging),对应的信息由多到少。
Set Suite Variable
name, *values
设置suite变量。
效果和使用变量表或者从变量文件中导入一致。其他的suite,包含子suite将看不到这个变量。变量名可以是
常规的变量名比如(eg ${NAME} )或者转义格式\${NAME} 或$NAME。

例子:
Set Suite Variable
${GREET}
Hello, world!
${ID} =
Get ID
Set Suite Variable
${ID}
注意如果变量的值中包含变量,必须使用转义的方式设置变量
例子:

${NAME} =

Set Variable

\${var}

Set Suite Variable

${NAME}

value

# Sets variable ${var}

Set Suite Variable

\${NAME}

value

# Sets variable ${NAME}

Set Tags
*tags
在测试用例或者suite中设置标签。
Teardown中不能使用该关键字。
Set Test Message
message
为当前测试用例设置消息。
message可能被错误消息覆盖,除非在测试用例teardown中使用。在测试用例teardown中,message甚至会覆盖错误消息。
本关键字不能在suite setup和 suite teardown中使用。
Set Test Variable
name, *values
设置当前测试用例变量。
Set Variable
*values
设置变量。
这个关键字主要用于设置标量变量。此外,它可用于转换包含列表的标量变量为列表变量或者多重标量变量,列表中的变量或多个标量变量。创建新列表时建议使用‘Create List'。
例子:

${hi} =
Set Variable
Hello, world!
${hi2} =
Set Variable
I said: ${hi}
${var1}
${var2} =
Set Variable
Hello
world
@{list} =
Set Variable
${list with some items}
${item1}
${item2} =
Set Variable
${list with 2 items}
本关键字创建的变量仅仅在当前范围有效。
Set Variable If
condition, *values
基于condition设置变量。
基本的用法是一个condition和2个value。使用Should
Be True来计算condition,如果condition为真,则返回第一个值,否则返回第二个值。第二个值也可以省略,会采用默认值None。

例子:假设${rc}是0
${var1} =
Set Variable If
${rc} == 0
zero
nonzero
${var2} =
Set Variable If
${rc} > 0
value1
value2
${var3} =
Set Variable If
${rc} > 0
whatever
=>
- ${var1} = 'zero'
- ${var2} = 'value2'
- ${var3} = None

多个Set Variable If关键字可以嵌套,效果类似于'Else If'。
例子
${var} =
Set Variable If
${rc} == 0
zero
... ...
${rc} > 0
greater than zero
less then zero
${var} =
Set Variable If
... ...
${rc} == 0
zero
... ...
${rc} == 1
one
... ...
${rc} == 2
two
... ...
${rc} > 2
greater than two
... ...
${rc} < 0
less than zero
Should Be Empty
item, msg=None
验证给定的项目为空。
Item的长度通过Get
Length关键字获取。
Should Be Equal
first, second, msg=None, values=True
Fail除非对象相等。
Should Be Equal As Integers
first, second, msg=None, values=True, base=None
Fail除非转换为整数后相等。
例子:
Should Be Equal As Integers
42 42
${42}
Error message
Should Be Equal As Integers
ABCD
abcd ABCD
base=16
Should Be Equal As Integers
0b1011
11 11
Should Be Equal As Numbers
first, second, msg=None, values=True, precision=6
Fail除非转换为实数后相等。
采用Convert To Number关键字使用指定的精度进行转换。

例子:
Should Be Equal As Numbers
${x}
1.1 1.1
# Passes if ${x} is 1.1
Should Be Equal As Numbers
1.123
1.1 1.1
precision=1
# Passes
Should Be Equal As Numbers
1.123
1.4 1.4
precision=0
# Passes
Should Be Equal As Numbers
112.3
75 75
precision=-2
# Passes
参考:http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm
Should Be Equal As Strings
first, second, msg=None, values=True
Fail除非转换为字符串后相等。
Should Be True
condition, msg=None
Fail除非condition为true。
如果condition是一个字符串(如“$ {RC}<10')使用Python的内置函数'eval'来处理表达式。其他情况参考:
http://docs.python.org/lib/truth.html

例子:
Should Be True
${rc} < 10
Should Be True
'${status}' == 'PASS'
# Strings must be quoted
Should Be True
${number}
# Passes if ${number} is not zero
Should Be True
${list}
# Passes if ${list} is not empty
Should Contain
item1, item2, msg=None, values=True
Fail除非item1中包含item2。
支持Python有in操作的字符串,列表等。

例子:
Should Contain
${output}
PASS
Should Contain
${some_list}
value
Should Contain X Times
item1, item2, count, msg=None
Fail除非item1中包含item2 count次。
支持字符串、列表等支持Get
Count关键字的对象。
支持字符串、列表等支持Get
Count关键字的对象。Msg会覆盖默认的错误消息。实际次数会记录在日志中。
列表和获取计数的所有对象的作品。默认的错误消息可以用味精覆盖和实际计数始终记录。
例子:
Should Contain X Times
${output}
hello
2
Should Contain X Times
${some list}
value
3
Should End With
str1, str2, msg=None, values=True
Fail除非字符串str1以字符串str2结尾。
Should Match
string, pattern, msg=None, values=True
Fail除非string匹配模式pattern。
模式匹配是和shell中的文件匹配类似,它区分大小写,'*'匹配所有字符,“?”单个字符。
Should Match Regexp
string, pattern, msg=None, values=True
Fail如果string不匹配正则表达式pattern。
使用python的re模块进行正则表达式匹配,详细信息如下:
* http://docs.python.org/lib/module-re.html
* http://www.amk.ca/python/howto/regex/

Robot Framework中的regexp需要注意:
1)反斜杠在测试数据是转义字符,因此模式中要使用双重转义(如:'\\d\\w+')模式可能反斜杠转义。
2)字符串需要转义的特殊字符,可以使用regexp ESCAPE关键字。
3)pattern不会匹配整个字符串。例如,模式'ello'会匹配字符串'hello world!如果要完整匹配,'^'和'$'字符可以用来表示字符串的开头和结尾
4)影响表达式解析的标志(eg re.IGNORECASE, re.MULTILINE)可通过前缀'(?iLmsux)'的形式设置(eg '(?im)pattern')。可用的标志有'IGNORECASE': 'i', 'MULTILINE': 'm', 'DOTALL': 's', 'VERBOSE': 'x', 'UNICODE': 'u', and 'LOCALE': 'L'.。
如何表达分析可能改变标志(如re.IGNORECASE,re.MULTILINE)可以设置前缀模式“(?iLmsux)组(如”(IM)模式“)。
如果关键字成功,它返回字符串匹配的模式的一部分。另外还可以返回组。

例子:
Should Match Regexp
${output}
\\d{6}
# Output contains six numbers
Should Match Regexp
${output}
^\\d{6}$
# Six numbers and nothing more
${ret} =
Should Match Regexp
Foo: 42
(?i)foo: \\d+
${match}
${group1}
${group2} =
...
Should Match Regexp
Bar: 43
(Foo|Bar): (\\d+)
=>
- ${ret} = 'Foo: 42'
- ${match} = 'Bar: 43'
- ${group1} = 'Bar'
- ${group2} = '43'
Should Not Be Empty
item, msg=None
验证给定的项目非空。
使用Get
Length来获取item的长度。Msg会覆盖默认的错误消息。
Should Not Be Equal
first, second, msg=None, values=True
Fail如果对象相等。
Should Not Be Equal As Integers
first, second, msg=None, values=True, base=None
Fail如果转换为整数后相等。
Should Not Be Equal As Numbers
first, second, msg=None, values=True, precision=6
Fail如果转换为实数后相等。
采用Convert To Number关键字使用指定的精度进行转换。
Should Not Be Equal As Strings
first, second, msg=None, values=True
Fail如果转换为字符串后相等。
Should Not Be True
condition, msg=None
Fail如果condition为true。
Should Not Contain
item1, item2, msg=None, values=True
Fail如果item1中包含item2。
支持Python有in操作的字符串,列表等。

例子:
Should Not Contain
${output}
FAILED
Should Not Contain
${some_list}
value
Should Not End With
str1, str2, msg=None, values=True
Fail如果字符串str1以字符串str2结尾。
Should Not Match
string, pattern, msg=None, values=True
Fail如果string匹配模式pattern。
模式匹配是和shell中的文件匹配类似,它区分大小写,'*'匹配所有字符,“?”单个字符。
Should Not Match Regexp
string, pattern, msg=None, values=True
Fail如果string匹配正则表达式pattern。
Should Not Start With
str1, str2, msg=None, values=True
Fail如果字符串str1以字符串str2开头。
Should Start With
str1, str2, msg=None, values=True
Fail如果字符串str1不以字符串str2开头。
Sleep
time, reason=None
暂停指定时间
时间可以是一个数字或时间字符串。时间字符串格式如'1 day 2 hours 3 minutes 4 seconds 5milliseconds' 或'1d 2h 3m 4s 5ms'等。参数reason用来解析reason为什么要sleep,sleep的时间和原因都记录在日志中。

例子:
Sleep
42
Sleep
1.5
Sleep
2 minutes 10 seconds
Sleep
10s
Wait for a reply
Variable Should Exist
name, msg=None
Fail如果给定的变量在当前范围内的不存在。
变量名可以是一个正常的变量名(如$ {NAME})或转义格式(例如:\ $ {NAME})。注意,前者有一定的局限性, 见Set
Suite Variable关键字中的解释。
Msg会覆盖默认的错误消息。
Variable Should Not Exist
name, msg=None
Fail如果给定的变量在当前范围内的存在。
变量名可以是一个正常的变量名(如$ {NAME})或转义格式(例如:\ $ {NAME})。注意,前者有一定的局限性, 见Set Suite
Variable关键字中的解释。
Msg会覆盖默认的错误消息。
Wait Until Keyword Succeeds
timeout, retry_interval, name, *args
等到指定的关键字成功或超时。
name和 args指定了要执行的关键字,类似于Run关键字。如果关键字在超时之前就失败,关键字就Fail。retry_interval是重试间隔:表示上次执行失败要等多久才执行下次。
Timeout和retry_interval必须使用Robot Framework的时间格式(e.g. '1 minute', '2 min 3 s', '4.5').
例子:
Wait Until Keyword Succeeds
2 min
5 sec
My keyword
arg1
arg2
Starting from Robot Framework 2.5 errors caused by invalid syntax, timeouts, or fatal exceptions are not caught by this keyword.机器人框架2.5语法无效,超时,或致命异常引起的错误开始不抓住这个关键字。
原文链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: