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.

执行结果:

posted @ 2021-09-26 13:00  qiyue1118  阅读(3813)  评论(0编辑  收藏  举报