== 变量 ==
RF用$,@,&分别表示标量,列表,和字典,对应的就是python中的sre,list和dict。RF中Variables用来创建变量。修改我们的demo.robot如下,对应于python的语法 var = “value”, list1 = [‘a’,’b’,’c’,var], dict1={‘key1’:’sf’, ‘key2’:list1}
*** Variables ***
${var1} value
@{list1} a b c ${var1}
&{dict1} key1=sf key2=${list1}
*** Test Cases ***
First Case
Log to console ${var1}
Log to console @{list1}
Log to console &{dict1}
Second Case
${res} Evaluate 1+2+3
Should Be Equal ${res} 6
Third Case
${res} Evaluate 'i'*3
Length Should Be ${res}
变量中可以引用其他变量的值。这次我们调用log to console关键字打印我们的变量。运行robot demo2.robot。得到结果如下
我们看到执行了第一行命令,打印var1的值value,第二行的时候报错了,因为list是个列表变量,通过@{list}进行引用的时候,实际上传递的是list中的元素,实际执行的是"Log to console a b c ${var1}”,传了4个参数进去,所以报错了。那我们想调用list本身时怎么办呢,用${list}。dict同理@{dict}是dict的key的每一个元素,&{dict}是dict中每一个item的遍历。修改testcase如下:
再次执行robot demo2.robot。
*** Test Cases ***
First Case
Log to console ${var1}
Log to console ${list1}
Log to console ${dict1}
再次执行robot demo2.robot。
访问列表中的元素,修改testcase如下:
*** Test Cases ***
First Case
Log to console ${var1}
Log to console ${list1}[0]
Log to console ${list1[0]}
Log to console ${dict1}[‘key1']
Log to console ${dict1[‘key1’]}
Log to console ${dict1.key1}
再次执行robot demo2.robot。
访问列表里的元素,和python的语法一样,中括号跟index就可以了。字典里的元素dict1[‘key1’]和dict1.key1是一样的。
因为RF中都是字符,传一些特殊的值就需要用内置的变量类似${6}的格式来使用,
常用的有${true},${false} ,${None} ,${null},${SPACE},${EMPTY}。
常用的有${true},${false} ,${None} ,${null},${SPACE},${EMPTY}。