1. 命名空间
比如我们想用python生成字典,可能会这样写
但是运行报错:
${Dict_2}中python变量key识别为字符串'key', 为了解决这个问题,可以使用RF的命名空间:


2. RF 字典
- 访问字典变量的三种方式:
${Dict}[a]
${Dict['a']}
${Dict.a}
3. 关于RF单元格换行的问题

像这样赋值多了一个换行,单元格看起来高了一点,RF的log也是看不出差别,只有在比较时才能判断

4. RF中的IF判断总结
Set Variable If

用法:只能判断表达式的真假
IF

用法:既能判断表达式,又能判断真假值
Run Keyword If

用法:既能判断表达式,又能判断真假值, 同 IF
5. RF变量在表达式中注意事项
-
变量替换
当在表达式中使用变量时,变量的值会在表达式被评估之前被替换,对于数字字符串,这个不是问题,可以直接在表示式中使用:
${rc} set variable 3
Should Be True ${rc} > 0 and ${a}==0
${rc} set variable 3
Should Be True ${rc} > 0
但是字符串变量 就需要加上引号(特别的,如果字符串有多行或者包含引号,就要使用三个引号包裹):
${name} set variable Robot
Should Be Equal '${name}' 'Robot'
-
特殊$variable
Robot Framework 提供了一种特殊的变量语法
$variable,可以直接访问变量值而不进行字符串替换,这样可以避免上述问题。使用这种语法时,变量值会直接参与表达式计算,而不会被转换为字符串
IF $status.upper() == 'PASS'
Log Passed
END
6. 布尔值的判断
又是我们想给关键字的入参传一个布尔值,但是RF会报传参类型错误
这是我们就会想到传入python的布尔值False
能够识别
需要注意的是,赋值要和python的布尔值一致,首字母大写,然后表达式中不能省略大括号
7. 在RF中使用对象
7.1 无参数实例化
py文件名需要跟类名一致
7.2 有参数实例化
py文件名需要跟类名一致
7.3 python表达式实例化
py文件名可以跟类名不一致