作为一门表格语言,为了保持简单的结构,RF没有像别的高级语言那样提供类似if else while等内置关键字来实现各种逻辑功能,而是提供给了用户BuiltIn库。如果用户想在测试用例中实现比较复杂的逻辑,那就需要对BuiltIn中的重要关键字有一些了解。BuiltIn库中还封装了很多常见方法和能够控制RF运行状态的关键字,如果想用好RF,一定要对BuiltIn库中的函数有一个比较全面的理解。下面就带着大家认识一下BuiltIn库中比较重要的关键字。
Evaluate 关键字:
Arguments:[ expression | modules=None | namespace=None ]Evaluates the given expression in Python and returns the results.
如果你需要进行一些数值运算并得到结果,你就需要用到Evaluate关键字。Evaluate会把你想要计算的表达式直接传递给Python,并把Python的计算结果返回给你。这是最经常要用到的。
Should 系列关键字:
Should系列关键字是Should打头的一系列关键字。
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--------参数:[ container | item | msg=None | values=True | ignore_case=False ]果容器一次或多次不包含(包含)项,则失败。
Should Contain X Times--------参数:[ item1 | item2 | count | msg=None | ignore_case=False ]如果item1不包含item2计数次数,则失败。
Should End With--------参数:[ str1 | str2 | msg=None | values=True | ignore_case=False ]如果字符串str1没有以字符串str2结尾,则失败。
Should Match--------参数:[ string | pattern | msg=None | values=True | ignore_case=False ]除非给定的字符串与给定的模式匹配,否则失败。
Should Match Regexp --------参数:[ string | pattern | msg=None | values=True ]如果字符串与作为正则表达式的模式不匹配,则失败(正则表达式).
Should Start With--------参数:[ str1 | str2 | msg=None | values=True | ignore_case=False ]如果字符串str1不以字符串str2开头,则失败。
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 Be Equal As String关键字,其它关键字我们通过关键字的名字就能顾名思义,知道它的作用。
Convert To系列关键字:
Convert To Binary
Convert To Boolean
Convert To Hex
Convert To Integer
Convert To Number
Convert To Octal
Convert To String
做类型转换,将某个值转换为相对应的类型。
Run keyword系列关键字:
Run Keyword If------Arguments:[ condition | name | *args ]如果condition为true,则使用给定的参数运行给定的关键字。
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
这些关键字能根据一个判断条件的真假来看是否执行关键字。一般使用这些关键字来实现高级语言中的ifelse功能。最常用的是Run Keyword If 和 Run Keyword unless 他们俩实现的效果正好相反。
Exit For Loop关键字:
用作退出循环,一般和Run Keyword If关键字联合使用,来实现条件退出。
Wait Until Keyword Succeeds关键字:
这是一个将异步调用变为同步调用的关键字。举一个例子:如果call某个WebService,并且需要得到返回结果才能做下一部操作。我们就会用到这个关键字
比如日期相关的关键字GetTime。让测试暂停的Sleep等。都相当有用。
RF目前仅有2个内置关键字:FOF 和 IN,来实现循环结构。功能还是比较弱的。
Keywords
Keyword | Arguments | Documentation | ||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Call Method | object, method_name ,*args , **kwargs |
使用提供的参数调用给定对象的命名方法。 返回方法的可能返回值,并将其分配给变量。如果对象没有具有给定名称的方法或者执行该方法引发异常,则关键字都会失败。 支持 例子:
|
||||||||||||||||||||||||||||||||||||||||||||||||||
Catenate | *items | 将给定的项目连接在一起并返回结果字符串。 默认情况下,项目用空格连接,但如果第一项包含字符串 例子:
=> |
||||||||||||||||||||||||||||||||||||||||||||||||||
Comment | *messages | 将日志文件中的给定消息显示为关键字参数。 此关键字对其接收的参数不起任何作用,但由于它们在日志中可见,因此该关键字可用于显示简单消息。鉴于参数被彻底忽略,它们甚至可以包含不存在的变量。如果您对变量值感兴趣,可以使用Log或Log Many关键字。 |
||||||||||||||||||||||||||||||||||||||||||||||||||
Continue For Loop | 跳过当前的循环迭代并从下一个继续。 跳过当前for循环迭代中的剩余关键字,并从下一个继续。可以直接在for循环中使用,也可以在循环使用的关键字中使用。 例:
要在不使用Run Keyword If或其他包装关键字的情况下有条件地继续for循环。请参阅Continue For Loop If New in Robot Framework 2.8. |
|||||||||||||||||||||||||||||||||||||||||||||||||||
Continue For Loop If | condition | 如果 Continue For Loop的包装器根据给定条件继续for循环。使用与Should Be True关键字相同的语义来评估条件。 例:
New in Robot Framework 2.8. |
||||||||||||||||||||||||||||||||||||||||||||||||||
Convert To Binary | item, base=None, prefix=None, length=None |
将给定项转换为二进制字符串。 的 返回的值可以包含一个可选项, 例子:
See also Convert To Integer, Convert To Octal and Convert To Hex. |
||||||||||||||||||||||||||||||||||||||||||||||||||
Convert To Boolean | item | 将给定项转换为布尔值true或false。 按预期处理字符串 |
||||||||||||||||||||||||||||||||||||||||||||||||||
Convert To Bytes | input, input_type=text |
下面列出了有效的输入类型:
除了将输入作为字符串提供外,还可以使用包含单个字符或数字的列表或其他迭代。在这种情况下,数字不需要填充到一定长度,并且它们不能包含额外的空格。 示例(最后一列显示返回的字节):
如果需要使用特定编码将文本转换为字节,请在 New in Robot Framework 2.8.2. |
||||||||||||||||||||||||||||||||||||||||||||||||||
Convert To Hex | item, base=None, prefix=None, length=None, lowercase=False |
将给定项转换为十六进制字符串。 的 返回的值可以包含一个可选项, 默认情况下,该值作为大写字符串返回,但 例子:
See also Convert To Integer, Convert To Binary and Convert To Octal. |
||||||||||||||||||||||||||||||||||||||||||||||||||
Convert To Integer | item, base=None |
将给定项转换为整数。 如果给定的项是字符串,则默认情况下它应该是基数为10的整数。有两种方法可以从其他基数转换:
语法不区分大小写,可能的空格被忽略。 例子:
See also Convert To Number, Convert To Binary, Convert To Octal, Convert To Hex, and Convert To Bytes. |
||||||||||||||||||||||||||||||||||||||||||||||||||
Convert To Number | item, precision=None |
将给定项转换为浮点数。 如果可选项 例子:
请注意,机器通常无法准确存储浮点数。这可能会导致这些数字出现意外情况,也可能会出现意外情况。有关更多信息,请参阅,例如,这些资源:
如果需要整数,请改用 Convert To Integer |
||||||||||||||||||||||||||||||||||||||||||||||||||
Convert To Octal | item, base=None, prefix=None, length=None |
将给定项转换为八进制字符串。 的 返回的值可以包含一个可选项, 例子:
See also Convert To Integer, Convert To Binary and Convert To Hex. |
||||||||||||||||||||||||||||||||||||||||||||||||||
Convert To String | item | 将给定项转换为Unicode字符串。 用途 如果需要使用不同的编码在Unicode和字节字符串之间进行转换,请使用Encode String To Bytes和Decode Bytes To String |
||||||||||||||||||||||||||||||||||||||||||||||||||
Create Dictionary | *items | 根据给定的内容创建并返回字典 通常使用与在Variable表中创建变量 或者,可以指定项目,以便分别给出键和值。这个和 如果多次使用相同的键,则最后一个值具有优先权。返回的字典是有序的,带字符串作为键的值也可以使用方便的点访问语法来访问 例子:
这个关键字在Robot Framework 2.9中以多种方式进行了更改:
|
||||||||||||||||||||||||||||||||||||||||||||||||||
Create List | *items | 返回包含给定项的列表。 返回的列表可以分配给变量 例子:
|
||||||||||||||||||||||||||||||||||||||||||||||||||
Evaluate | expression, modules=None, namespace=None |
在Python中计算给定的表达式并返回结果。
使用的变量 示例(期望
=> |
||||||||||||||||||||||||||||||||||||||||||||||||||
Exit For Loop | 停止执行封闭for循环。 退出封闭的for循环并继续执行。可以直接在for循环中使用,也可以在循环使用的关键字中使用。 例:
请参阅Exit For Loop If 要在不使用Run Keyword If或其他包装关键字的情况下有条件地退出for循环。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||
Exit For Loop If | condition | 如果 |