内置库BuiltIn
Robot Framework框架安装后,打开ride客户端会默认加载BuiltIn库,支持日志打印,断言,创建列表,创建字典,变量,关键字运行,数据类型转换等常用关键字。
学习目录
关键字搜索
BuiltIn库的位置
变量类关键字
创建字典和列表
表达式计算
数据类型转换类关键字
日志打印类关键字
断言类关键字
条件判断类关键字
循环关键字
其他一些关键字
总结
关键字搜索
查找RF框架加载的关键字,点击Tools菜单,选择“Search Keywords”或者直接按键盘上的F5按键。
打开后可以看到已经加载的builtIn库,点击该库可以看到下方列出的很多关键字,并且点击每个关键字,下方都会有相应的使用说明,会介绍该关键字的来源,参数,有些还有一些示例帮助大家理解。
BuiltIn库的位置
在robotframework库的安装目录/robot/libraries下,当然还有很多其他的一些库,只是没有默认加载,大家可以在使用时选择import导入这些库。
变量类关键字
关键字 | 说明 |
Set Global Variable | 设置全局变量,使变量在所有测试用例和测试套件,用户关键字中全局可用。 |
Set Local Variable | 设置当前位置变量,使用该关键字设置的变量在当前执行的测试用例的本地范围内或在定义它们的关键字的本地范围中可用。例如,如果在用户关键字中设置变量,则该变量仅在该关键字中可用。其他测试用例或关键字将不会看到使用此关键字设置的变量。 |
Set Suite Variable | 设置测试套件变量,使变量在当前套件范围内的任何位置都可用,包括所有套件下的测试用例以及使用到的用户关键字,而其他测试套件则不可用。 |
Set Test Variable | 设置测试用例变量,使该变量在当前执行的测试用例范围内的任何地方都可用。例如,如果在用户关键字中设置了一个变量,那么它在测试用例级别以及当前测试中使用的所有其他用户关键字中都可用。其他测试用例将不会看到使用此关键字设置的变量。 |
Set Variable | Builtln返回给定的值,然后可以将这些值赋值给变量。 |
Set Variable lf | 根据给定条件设置变量。 |
举例:
测试套件Suite1有2条测试用例Case1和Case2
测试套件Suite2有1条测试用例Case3
在Case1中分别定义以上表格中的各个作用域变量,分别在Case2和Case3中打印Case1中的变量信息。
打印结果 相信大家也清楚了:
- Case2中的log ${fruit2}和log ${fruit4}肯定会打印失败,因为这两个是局部变量,其他用例是不可见的
2)Case3中除了log ${fruit1}会成功,其他log ${fruit2}和log ${fruit3}和log ${fruit4}肯定会打印失败,因为这3个变量对于Case3来说都是局部变量。
创建字典和列表
关键字 | 说明 |
Create Dictionary | 根据给定的项创建并返回字典。 返回的字典可以同时分配给${scalar}和&{list}变量。 项目通常使用key=value语法,也可以是其他语法,详见该关键字使用介绍 访问key的语法可以使用${dict.key} |
Create List | 返回包含给定项目的列表。 返回的列表可以同时分配给${scalar}和@{list}变量。 |
关于列表和字典更多的关键字位于collections库中,后续在单独介绍。
表达式计算
关键字 | 说明 |
Evaluate | 在Python中计算给定的表达式并返回结果。 类似于python中的evaluate函数。 |
数据类型转换类关键字
关键字 | 说明 |
Convert To Binary | Builtln将给定项转换为二进制字符串。 |
Convert To Boolean | Builtln将给定项转换为布尔值true或false。 |
Convert To Bytes | Builtln将给定项转换为字节码 |
Convert To Hex | 转换为十六进制 |
Convert To Integer | 转换为整数 |
Convert To Number | 转换为数字 |
Convert To Octal | 转换为八进制 |
Convert To String | 转换为字符串 |
日志打印类关键字
关键字 | 说明 |
Log | 打印给定的1个信息 |
Log Many | 打印给定的多个信息 |
Log To Console | 将给定的消息记录到控制台。 |
Log Variables | 使用给定的日志级别记录当前作用域中的所有变量。 |
断言类关键字
关键字 | 说明 |
Should Be Empty | 验证给定项为空,则成功。 |
Should Be Equal | 验证给定项是否相等。如果给定对象相等,则成功。 |
Should Be Equal As Integers | 如果对象在转换为整数后相等,则成功。 |
Should Be Equal As Numbers | 如果对象在转换为实数后相等,则成功。 |
Should Be Equal As Strings | 如果对象在转换为字符串后相等,则成功。 |
Should Be True | 如果给定条件为True,则成功。 |
Should Contain | 如果对象内包含一次或多次指定的“item”项,则成功。 |
should Contain Any | 如果对象内包含任意1个给定的“items”项,则成功。 |
should Contain X Times | 如果对象内包含给定次数的“item”项,则成功。 |
Should End With | 如果字符串“str1”以字符串“str2”结尾,则成功 |
Should Start With | 如果字符串“str1”以字符串“str2”开始,则成功 |
Should Match | 如果给定字符串与给定模式匹配,则成功。使用时parern以*结束,比如Should Match ${var1} *abc* |
Should Match Regexp | 如果给定字符串与给定正则表达式模式匹配,则成功。使用时parern以*结束,比如Should Match ${var1} *abc* |
关键字 | 说明 |
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 | 如果给定条件为不为True,则成功。 |
Should Not Contain | 如果对象内不包含一次或多次指定的“item”项,则成功。 |
should Not Contain Any | 如果对象内不包含任意1个给定的“items”项,则成功。 |
should Not Contain X Times | 如果对象内不包含给定次数的“item”项,则成功。 |
Should Not End With | 如果字符串“str1”不以字符串“str2”结尾,则成功 |
Should Not Start With | 如果字符串“str1”不以字符串“str2”开始,则成功 |
Should Not Match | 如果给定字符串与给定模式不匹配,则成功。使用时parern以*结束,比如Should Not Match ${var1} *abc* |
Should Not Match Regexp | 如果给定字符串与给定正则表达式模式不匹配,则成功。使用时parern以*结束,比如Should Match ${var1} *abc* |
条件判断类关键字
关键字 | 说明 |
Run Keyword And lgnore Error | 运行关键字并忽略掉报错 |
Run Keyword And Return | 运行关键字并返回 |
Run Keyword And Return lf | 运行关键字并返回lf |
Run Keyword And Return StatusBuiltln Run Keyword lf | 运行关键字并返回StatusBuiltln 如果“condition”为true,则使用给定的参数运行给定的关键字。 支持ELSE或ELSE IF分支。 |
Run Keyword lf All Tests Passed | 如果所有测试都通过,则使用给定的参数运行给定的关键字。 此关键字只能在套件Suite Teardown中使用。试图在任何其他地方使用它都会导致错误。 |
Run Keyword If All Critical Tests Passed | 如果所有关键测试都通过,则使用给定的参数运行给定的关键字。 此关键字只能在套件Suite Teardown中使用。试图在任何其他地方使用它都会导致错误。 |
Run Keyword If Any Critical Tests Failed | 如果任意1个关键测试失败,则使用给定的参数运行给定的关键字。 此关键字只能在套件Suite Teardown中使用。试图在任何其他地方使用它都会导致错误。 |
Run Keyword If Any Tests Failed | 如果任意1个测试用例失败,则使用给定的参数运行给定的关键字。 此关键字只能在套件Suite Teardown中使用。试图在任何其他地方使用它都会导致错误。 |
Run Keyword If Test Failed | 如果该测试用例失败,则使用给定的参数运行给定的关键字。 此关键字只能在用例Test Teardown中使用。试图在任何其他地方使用它都会导致错误。 |
Run Keyword If Test Passed | 如果该测试用例成功,则使用给定的参数运行给定的关键字。 此关键字只能在用例Test Teardown中使用。试图在任何其他地方使用它都会导致错误。 |
Run Keyword If Timeout Occurred | 如果测试或关键字超时,则执行指定的关键字 |
Run Keyword Unless | 如果条件为false,则使用给定的参数运行给定的关键字。 此关键字不支持ELSE或ELSE IF分支,但“Run keyword IF”支持。 |
Run Keywords | 执行多个关键字,多个关键字以AND隔离 |
循环关键字
关键字 | 说明 |
Exit For Loop | 退出循环 |
Exit For Loop lf | 当满足条件时退出循环 |
其他一些关键字
关键字 | 说明 |
Get Count | 返回并记录从对象中找到指定项目的次数。 该关键字适用于Python字符串和列表,以及所有具有count方法或可以转换为Python列表的对象。 |
Get Length | 将给定项的长度作为整数返回并记录。 项目可以是字符串、列表或映射。如果传入的对象没有length,返回错误。 |
Get Time | 不传参数默认返回这种格式2023-08-13 15:04:02 也可以传入format字符串返回对应的时间格式。 |
总结
以上就是自带的BuiltIn库的关键字信息,可以看出来是非常强大,也是非常实用的,里面的很多关键字经常会使用到。
本章我们没有针对每个关键字讲解具体的示例,因为相信大家自己使用时会很容易上手,看再多的书也不如多动手练习,这样才会真真切切的体会到RF的强大之处。
共勉: 东汉·班固《汉书·枚乘传》:“泰山之管穿石,单极之绠断干。水非石之钻,索非木之锯,渐靡使之然也。”
-----指水滴不断地滴,可以滴穿石头;
-----比喻坚持不懈,集细微的力量也能成就难能的功劳。