|
|
|
| object, method_name, *args
| 使用参数args调用对象object的方法method_name。
方法可能返回值可以赋值给一个变​​量。
当找不到方法或者方法产生异常时,Keyword会失败。
|
|
|
默认用空格连接参数项目,如果第一个参数为'SEPARATOR=',则使用”sep”来连接.
- ${str1} = 'Hello world'
- ${str2} = 'Hello---world'
|
|
|
Comment对参数不进行任何处理,仅仅是显示在日志中,用于显示简单信息。
如果要显示变量值,可以使用Log或 Log Many关键字。
|
| item, base=None, prefix=None, length=None
|
如果添加了base参数,则先内部使用ConvertTo Integer转换为整数,然后再转换为二进制数字,以字符串的形式显示,比如”1011“。
返回值可以包含可选的前缀和最小长度(不包含前缀和负号等)。如果返回值比要求的长度短,则使用0填充。
|
|
|
如果参数是字符串'True'(不区分大小写)就返回真,为'False'就返回假;其他情况调用Python的'bool'的方法来判断。请参阅http://docs.python.org/lib/truth.html。
|
| item, base=None, prefix=None, length=None, lowercase=False
|
如果添加了base参数,则先内部使用Convert ToInteger转换为整数,然后再转换为十六进制数字,以字符串的形式显示,比如'FF0A'。
返回值可以包含可选的前缀和最小长度(不包含前缀和负号等)。如果返回值比要求的长度短,则使用0填充。
默认返回大写字符串,lowercase参数会转换值为小写(不包含前缀)。
|
|
|
如果参数是字符串,则默认转为十进制整数。使用其他进制可以用base指定或者添加前缀,比如0b表示2进制,0o表示8进制,0x表示16进制。前缀只有当无base参数才可以添加,前缀的前面还可以添加加减等符号。
|
|
|
如果可选参数precision是正数或零,返回的四舍五入的值。负数则相当于修改-precision位数为0
如果可选参数precision是负数,返回的四舍五入的值。
注意机器一般不能准确地存储浮点数。参见http://docs.python.org/tutorial/floatingpoint.html。
|
| item, base=None, prefix=None, length=None
|
如果添加了base参数,则先内部使用Convert ToInteger转换为整数,然后再转换为八进制数字,以字符串的形式显示,比如'775''。
返回值可以包含可选的前缀和最小长度(不包含前缀和负号等)。如果返回值比要求的长度短,则使用0填充。
默认返回大写字符串,lowercase参数会转换值为小写(不包含前缀)。
|
|
|
针对Python对象使用“__unicode__'或'__str__’方法。
|
|
|
返回的列表都用来给$ {标量}和@{列表}变量赋值。
|
|
|
modules参数可用于导入一些逗号分隔模块列表到表达式计算的名字空间。
的进口和计算表达式的命名空间添加到Python模块列表。
modules argument can be used to specify a comma separated list ofPython modules to be imported and added to the namespace of the evaluatedexpression .评估在Python表达式,并返回结果。模块参数可用于指定一个逗号分隔的进口和计算表达式的命名空间添加到Python模块列表。
例子: (假定 ${result} 为 3.14):
|
|
|
|
|
|
|
|
|
|
|
|
|
| random.randint(0, sys.maxint)
|
|
|
|
|
|
|
|
|
|
| 停止执行整个测试。后续用例不会执行,可能的teardown也不会执行。
|
|
| 返回并在日志中记录item2在Item1中出现的次数。
此关键字适用于Python字符串和列表和所有具有'count'方法和以及可转换为Python列表的对象。
|
|
|
item可以是任何有一个长度的对象,例如,字符串,列表,或映射。
关键字首先试图用Python函数len函数(内部调用item的__len__方法)得到的长度。如果失败,关键字尝试直接调用item's的可能的length和size的方法。最后试图获得该项目的length属性值。如果所有这些尝试不成功的,关键字Fail。
可以使用列表,但是要作为标量来使用,比如(e.g. ${LIST})。
|
|
|
该关键字可以是测试库和其他有状态的测试库进行交互。比如:
from robot.libraries.BuiltIn import BuiltIn
def title_should_start_with(expected):
seleniumlib =BuiltIn().get_library_instance('SeleniumLibrary')
title =seleniumlib.get_title()
if nottitle.startswith(expected):
raiseAssertionError("Title '%s' did not start with '%s'"
它也可以使用这个关键字,在测试数据,并返回库实例传递到另一个关键字。If a library is imported with a custom name, the name usedto get the instance must be that name and not the original library name.如果一个库导入一个自定义名称,名称中使用的实例必须是这个名字,而不是原来的库名称。
|
| format=timestamp, time=NOW
|
1) 如果格式中包含epoch,返回的是(Jan 1, 1970 0:00:00)开始的秒数。
2) 如果格式包含任何'year','month', 'day', 'hour', 'min', or 'sec',则返回对应部分。
3) 默认格式'2006-02-2415:08:31'
2) 有效的时间戳,比如:'YYYY-MM-DDhh:mm:ss' and 'YYYYMMDD hhmmss'
4) 'NOW - 1 day' 或 'NOW + 1 hour 30 min' 等则会计算时间
例子:假定当前时间是2006-03-29 15:06:21
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| year month day hour min sec
|
|
|
|
|
|
|
|
- ${time} = '2006-03-29 15:06:21'
- ${yyyy} = '2006', ${mm} = '03', ${dd} = '29'
- @{time} = ['2006', '03', '29', '15', '06', '21']
- ${y} = '2006' - ${s} = '21'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| # 1 day subtraced from NOW
|
|
|
|
| # 1h 2min 3s added to NOW
|
- ${time} = '2007-04-27 09:14:27'
- @{time} = ['16', '08','24']
|
|
|
变量名可以是常规的变量名比如(eg ${NAME} )或者转义格式\${NAME}。注意,前者有一定的局限性, 见Set SuiteVariable关键字中的解释。
|
|
|
|
|
|
可以在测试执行时动态导入库。支持库名和绝对路径导入。使用'WITH NAME'还可以更改库名。
|
|
|
|
|
|
|
|
|
|
| ${CURDIR}/../libs/Lib.java
|
|
|
|
|
|
|
path必须是绝对路径。斜线作为路径分隔符(包含Windows)。
|
|
| ${CURDIR}/../resources/resource.html
|
|
|
|
path必须是绝对路径。斜线作为路径分隔符(包含Windows)。
|
|
|
|
|
|
通过关键字Get Length获取item的长度。
|
|
|
有效的日志级别有TRACE, DEBUG, INFO (default), HTML and WARN 。HTML 可以写不转义的HTML 代码。例如 在HTML 日志级别将创建一个图像,但其他级别仅仅是显示字符串。注意,无效的HTML 会破坏整个日志文件,一定要谨慎使用。HTML 消息实际上是使用了INFO 级别。
WARN级别记录的消息将在控制台和日志中测试执行的错误部分都可以看到。
|
|
| 在INFO级别下记录messages为独立的条目。
|
|
|
|
|
|
|
|
|
这个关键字可以用来转义关键字ShouldMatch Regexp和Should NotMatch Regexp使用的字符串。
转义使用python中的re.escape()函数。
|
|
|
Tag可以使用模式,'*'匹配所有字符,“?”单个字符。
|
|
|
Times为整数或可以转换为整数的字符串。为了提高可读性,还可以在'times'后添加后缀'times' or 'x'(不区分大小写,去掉多余空格)。
|
|
|
例子:假定文件“template.txt”的内容为“Hello $ {NAME}!”,变量的'${NAME}'的值为'Robot'。
如果text只有一个变量,返回值为原来的对象。否则返回字符串。
|
|
|
name可以动态设定,例如,来自另一个关键字的返回值或命令行。
|
Run KeywordAnd Continue On Failure
|
| 根据参数args执行关键字name,错误时依旧继续执行。
Run Keyword And Continue On Failure
|
|
|
|
|
|
|
Run Keyword AndExpect Error
| expected_error, name, *args
| 根据参数args执行关键字name,预期捕获到错误:expected_error。
预期的错误必须和Robot Framework报告中的相同。它可以是一个模式,'*'匹配所有字符,“?”匹配单个字符。捕获到预期错误,返回错误消息,否则关键字Fail。
Run Keyword And Expect Error
|
|
|
|
|
| Run Keyword And Expect Error
|
|
|
|
|
|
|
|
|
|
Run Keyword AndIgnore Error
|
|
此关键字返回两个值,第一个是是“PASS”或'FAIL',第二个值是返回值或者或收到的错误消息。
|
|
| 如果condition为真,根据参数args执行关键字。
例子:a simple if/else construct:
|
| Run Keyword And Ignore Error
|
|
|
|
|
|
|
|
|
|
|
RunKeyword If All Critical Tests Passed
|
| 如果所有Critical测试用例通过,则根据参数args执行关键字。
|
Run Keyword IfAll Tests Passed
|
| 如果所有测试用例通过,则根据参数args执行关键字。
|
RunKeyword If Any Critical Tests Failed
|
| 如果有Critical测试用例Fail,则根据参数args执行关键字。
|
Run Keyword IfAny Tests Failed
|
| 如果有测试用例Fail,则根据参数args执行关键字。
|
Run Keyword If TestFailed
|
| 如果测试用例Fail,则根据参数args执行关键字。
|
Run Keyword If TestPassed
|
| 如果测试用例Pass,则根据参数args执行关键字。
|
Run Keyword IfTimeout Occurred
|
|
|
|
| 如果condition为假,根据参数args执行关键字。
|
|
|
主要用于setups 和 teardowns中,不想创建更高级别的关键字但是有很多很多动作要进行。
|
|
|
和命令行使用'--variable' or '--variablefile'创建的效果一样。
|
|
|
使用关键字的时候可以不使用库名,比如Keyword 和MyLibrary.Keyword效果一样,清晰起见,还是建议带上库名。
注:文件中的关键字比库中的有更高的优先级。所有名字不区分大小写,会忽略多余的空格。
|
|
|
默认级别是INFO.可用的log级别有:TRACE, DEBUG, INFO (default), WARN and NONE (no logging),对应的信息由多到少。
|
|
|
效果和使用变量表或者从变量文件中导入一致。其他的suite,包含子suite将看不到这个变量。变量名可以是
常规的变量名比如(eg ${NAME} )或者转义格式\${NAME} 或$NAME。
注意如果变量的值中包含变量,必须使用转义的方式设置变量
例子:
${NAME} =
| Set Variable
| \${var}
|
| Set Suite Variable
| ${NAME}
| value
| # Sets variable ${var}
| Set Suite Variable
| \${NAME}
| value
| # Sets variable ${NAME}
|
|
|
|
|
|
|
message可能被错误消息覆盖,除非在测试用例teardown中使用。在测试用例teardown中,message甚至会覆盖错误消息。
本关键字不能在suite setup和 suite teardown中使用。
|
|
|
|
|
|
这个关键字主要用于设置标量变量。此外,它可用于转换包含列表的标量变量为列表变量或者多重标量变量,列表中的变量或多个标量变量。创建新列表时建议使用‘Create List'。
|
|
|
基本的用法是一个condition和2个value。使用ShouldBe True来计算condition,如果condition为真,则返回第一个值,否则返回第二个值。第二个值也可以省略,会采用默认值None。
多个Set Variable If关键字可以嵌套,效果类似于'ElseIf'。
|
|
|
Item的长度通过Get Length关键字获取。
|
| first, second, msg=None, values=True
|
|
Should Be Equal AsIntegers
| first, second, msg=None, values=True, base=None
|
Should Be Equal As Integers
|
|
|
| Should Be Equal As Integers
|
|
|
| Should Be Equal As Integers
|
|
|
|
|
Should Be Equal AsNumbers
| first, second, msg=None, values=True, precision=6
|
采用Convert ToNumber关键字使用指定的精度进行转换。
Should Be Equal As Numbers
|
|
|
|
| Should Be Equal As Numbers
|
|
|
|
| Should Be Equal As Numbers
|
|
|
|
| Should Be Equal As Numbers
|
|
|
|
|
参考:http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm
|
Should Be Equal AsStrings
| first, second, msg=None, values=True
|
|
|
|
如果condition是一个字符串(如“$ {RC}
|
|
|
使用Get Length来获取item的长度。Msg会覆盖默认的错误消息。
|
| first, second, msg=None, values=True
|
|
Should Not BeEqual As Integers
| first, second, msg=None, values=True, base=None
|
|
Should Not BeEqual As Numbers
| first, second, msg=None, values=True, precision=6
|
采用Convert ToNumber关键字使用指定的精度进行转换。
|
Should Not BeEqual As Strings
| first, second, msg=None, values=True
|
|
|
|
|
| item1, item2, msg=None, values=True
|
|
| str1, str2, msg=None, values=True
|
|
| string, pattern, msg=None, values=True
|
模式匹配是和shell中的文件匹配类似,它区分大小写,'*'匹配所有字符,“?”单个字符。
|
| string, pattern, msg=None, values=True
| Fail如果string匹配正则表达式pattern。
|
| str1, str2, msg=None, values=True
|
|
| str1, str2, msg=None, values=True
| Fail如果字符串str1不以字符串str2开头。
|
|
|
时间可以是一个数字或时间字符串。时间字符串格式如'1 day 2 hours 3 minutes 4 seconds 5milliseconds' 或 '1d 2h 3m 4s 5ms'等。参数reason用来解析reason为什么要sleep,sleep的时间和原因都记录在日志中。
|
|
|
变量名可以是一个正常的变量名(如$ {NAME})或转义格式(例如:\ ${NAME})。注意,前者有一定的局限性, 见SetSuite Variable关键字中的解释。
|
|
|
变量名可以是一个正常的变量名(如$ {NAME})或转义格式(例如:\ ${NAME})。注意,前者有一定的局限性, 见SetSuite Variable关键字中的解释。
|
Wait Until KeywordSucceeds
| 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
|
|
|
|
|
|
Starting from Robot Framework 2.5 errors caused by invalid syntax,timeouts, or fatal exceptions are not caught by this keyword.机器人框架2.5语法无效,超时,或致命异常引起的错误开始不抓住这个关键字。
|