变量
定义规则
-
与关键字类似,不区分大小写
-
下划线和空格会被忽略
-
推荐使用大写字母来标识全局变量
-
小写字母标识局部变量
scalar变量
scalar:用$做标识符,标量,单值变量,可以使用log打印
变量赋值:
1)set赋值
2)Get赋值
主要用于返回值上,包括系统关键字的返回值和用户关键字的返回值
以上两个运行结果
List变量
List:用@作为标识符,多值变量,可以使用log many打印
1)变量赋值
2)list元素的使用
常用:@{变量名}[index]
另一种:${变量名[index]}
变量转换
@{arg}和${arg}可以互转,互转的限制是变量没有初始化或者赋值,如果初始化或赋值了就各自独立了
Dictionary:用&作为标识符
带有$标识的变量,接收list值后会转为list变量
变量声明
RF底层是python,变量不需要特定说明,只要有初始化赋值即可使用。
RIDE里所有字符都会被当做字符串,即使变量的值是数值,默认是字符串形式存在
变量作用域
默认是局部变量
细分:
-
case里的变量,作用域是case内部
-
userkeyword的变量,作用域是这个userkeyword内部
-
文件型suite的变量,作用域是这个suite内部,下面的所有case也可以使用
改变作用域:
-
set global variable改为全局变量,在所有测试案例和测试套件里都有效
-
set suite variable为设定file suite级变量,变量在当前的file suite有效,包括下面的案例
-
set test variable设定case级变量,变量在当前test case里有效
关键字
系统关键字
RF内置测试库有很多关键字,按照大致的大类分为以下几种,以下主要列举一些常见的关键字以及用法(具体的可以在ride里面按F5查看)
convert
关键字 | 作用 |
---|---|
ConVert To Interger | 将变量转换为整数类型 |
Convert To Binary | 将变量转换为二进制 |
Convert To Bytes | 转换为字节 |
Convert To Hex | 转换为十六进制 |
Convert To Number | 转换为浮点数 |
Convert To Octal | 转换为八进制 |
Convert To String | 将变量转换为字符串类型 |
Convert To Boolean | 将变量转换为布尔类型 |
断言
关键字 | 作用 |
---|---|
Shoulid Not Be Empty | 验证一个值是否不为空 |
Should Be Empty | 验证一个值是否为空 |
Should Not Be True | 验证两个值是否不相等 |
Should Be True | 验证一个值是否为真 |
Should Be False | 验证一个值是否为假 |
Should Be Equal | 验证两个值是否相等 |
Should not be equal | 验证不相等 |
Should Be Equal As Intergers | 作为整数时相等 |
Should Be Equal As Numbers | 作为数字时相等 |
Should Be Equal As Strings | 作为字符串时相等 |
Should Start With | 验证一个字符串是否以指定的前缀开始 |
Should End With | 验证一个字符串是否以指定的后缀结束 |
Should Match | 判断某个字符串是否与预期指定的字符串相匹配,如果可以匹配,则执行成功,否则执行失败 |
Should Not Match | 与预期不匹配 |
Should Match Regexp | 使用正则表达式匹配 |
Should Not Match Regexp | 使用正则表达式不匹配 |
Length Should Be | 断言长度是 |
Should Contain | 验证一个字符串是否包含另一个字符串 |
Should Contain Any | 判断是否包含任一元素 |
Should Contain x times | 包含某值x次 |
Should Not Contain | 验证一个字符串是否不包含另一个字符串 |
... | ... |
变量相关
关键字 | 作用 |
---|---|
Set Variable | 设置变量的值 |
Set Variable If | 根据条件设置值 |
Set Test Varibale | 设置test变量 |
Set Suite Varibale | 设置suite变量 |
Set Global Varibale | 设置全局变量 |
Get Variable Value | 获取变量的值 |
Get Variables | 返回所有变量 |
Log Variables | 输出所有变量 |
... | ... |
Run Keyword
关键字 | 作用 |
---|---|
Run Keyword | 运行关键字 |
Run Keyword And Continue On Failure | 失败后仍然运行指定关键字 |
Run Keyword And Expect Error | 运行关键字得到预期的错误 |
Run Keyword And Ignore Error | 运行关键字并忽略错误 |
Run Keyword And Return | 运行关键字并返回结果 |
Run Keyword And Return Status | 运行关键字并返回状态 |
Run Keyword If | 当条件满足时运行关键字 |
Run Keyword Unless | 当条件为假时运行关键字 |
Run Keyword If Test Failed/Passed | 用例运行失败/成功后运行关键字 |
Run Keywords | 运行多个关键字 |
Repeat Keyword | 重复运行某个关键字 |
Wait Until Keyword Succeeds | 指定时间内等待关键字运行成功 |
Run keyword If Timeout Occurred | 测试用例超时后运行关键字 |
Run keyword if all tests passed | |
run keyword if timeout occured |
流程类
关键字 | 作用 |
---|---|
Continue For Loop | 继续下一次循环 |
Exit For Loop If | 条件满足时退出循环 |
其他
关键字 | 作用 |
---|---|
No Operation | 无任何操作,站位 |
Sleep | 等待n秒 |
catenate | 字符拼接 |
Log | 打印单值 |
Log Many | 打印多值 |
Get Length | 获取list或者dict的长度 |
wait until keywords succeeds | |
循环和分支
循环
FOR 循环变量 IN RANGE end
FOR 循环变量 IN RANGE start end
FOR 循环变量 IN RANGE start end step
FOR 循环变量 IN ENUMERATE
可以追踪每个元素的索引位置
FOR 循环变量 IN @{list}
FOR 循环变量 IN ZIP @{list} @{list}
双层循环
当前RF不支持双层循环,可在FOR循环内部增肌按一个关键字,此关键字实现一个单层循环
repeat keyword num user keywords
分支
结构:
Run Keyword If 判断条件1 关键字
... ELSE IF 判断条件2 关键字
... ELSE 判断条件3 关键字
判断条件格式:
-
数字对比:${value} == 13;${value}<18
-
字符对比:'${value}' == 'abc';'${value}'!='abc'
-
布尔对比:'${value}' == 'true' '${value}' == 'fasle'
-
是否包含:${num} in @{value},'${string} ' in @{value}
-
列表对比:@{list1} == @{list2} @{list1}[1] == @{list2}[2]
-
多个判断 A and B and C
强大的EVALUATE
主要作用是可以直接调用python的方法
格式:接收值 EVALUATE 运算表达式 module
例子:${num} Evaluate random.randint(0,1000) random