robotframework 中的if语句---- run keyword if
一. 简介
对比于python中的if关键字,robotframework中是用run keyword if关键字。
python中使用 if...elif...else 语句结构,而在robotframework中如下:
run keyword if 判断条件 其他关键字
... ELSE IF 判断条件 其他关键字
... ELSE 其他关键字
注意:ELSE IF, ELSE一定要全大写!
二. 使用示例
1. 数字对比
*** Variables ***
${num} 5
*** Test Cases ***
Test_001
log to console num=${num}
run keyword if ${num}>3 log to console first success
... ELSE log to console first fail
run keyword if ${num}>${3} log to console second success
... ELSE log to console second fail
run keyword if ${num}<0 log to console third success
... ELSE IF ${num}==5 log to console It's five
... ELSE log to console third fail
对比数字,直接写数字值(3)或变量形式(${3})均可。
执行结果:
2. 字符串对比
在自动化中,经常会比较获取到的页面的值和预期值是否相同。
若变量为字符串,则变量和被比较值都要加单引号‘’或双引号“”。
*** Variables ***
${str2} abc
*** Test Cases ***
Test_001
log to console str=${str2}
run keyword if '${str2}'=='abc' log to console success
... ELSE log to console fail
执行结果:
3. 布尔值对比
进行真假判断时,run keyword if 后面可以直接跟变量名即可,如
run keyword if ${var} 其他关键字
true和false大小写均可,如${TRUE},${true}。
*** Variables ***
${str2} abc
${str3} ${true}
*** Test Cases ***
Test_001
run keyword if ${str2} log to console first success
... ELSE log to console first fail
run keyword if ${str3}==${TRUE} log to console second success
... ELSE log to console second fail
run keyword if ${str3}==${true} log to console third success
... ELSE log to console third fail
${str6} set variable ${false}
run keyword if ${str6}==${false} log to console fourth success
... ELSE log to console fourth fail
执行结果:
对于
run keyword if ${var}==${false} 其他关键字
这种情况,也可以直接用
run keyword unless ${var} 其他关键字
来代替。
run keyword unless 关键字,是当条件为假时,执行后面的关键字。
4. 判断列表是否包含某元素
在判断语句中可以使用not in和in来判断某个元素是否在列表中。
*** Variables ***
${num} 5
@{num_list} 1 3 5 #这里的值被判定为字符串
@{num_list2} ${1} 3 ${5} #${5}是数字
*** Test Cases ***
Test_001
run keyword if ${num} not in ${num_list} log to console first success
... ELSE log to console first fail
run keyword if '${num}' in ${num_list} log to console second success
... ELSE log to console second fail
run keyword if ${num} in @{num_list2} log to console third success
... ELSE log to console third fail
执行结果:
5. 判断列表相等
*** Variables ***
@{num_list2} 1 3 5
@{num_list} 1 3 5
*** Test Cases ***
Test_001
run keyword if ${num_list} == ${num_list2} log to console first success
... ELSE log to console first fail
run keyword if @{num_list} == @{num_list2} log to console second success
... ELSE log to console second fail
执行结果:
6. 与run keywords结合使用
run keyword if 条件语句 run keywords 其他关键字
... AND 其他关键字
... AND 其他关键字
表示条件为真时,才执行run keywords后面的关键字。
7. 与set variable结合使用
*** Test Cases ***
Test_001
${num} set variable 0
${result} run keyword if ${num}<0 set variable ${${num}+1}
... ELSE set variable ${${num}+2}
log to console ${result}
注意:${${num}+2} 这种形式,获得的是数字相加的计算结果,为2;
如果写成${num}+2这种形式,获得的是两个字符链接结果,为0+2.
执行结果: