robotframework---分支

174 阅读1分钟

if 表达式

有时需要有条件地执行一些关键字, 从robot 4.0开始,支持 if 表达式语法, 但依旧支持其他方式,例如run keyword if

basic IF syntax

robot 的原生if 表达式语法以IF(得大写)开头, 以END(得大写)结束, IF 后面跟判断条件,如果条件为真,就执行IF和END之间的关键字,建议IF块中缩进关键字,但不是强制性的,这样使得代码更容易阅读。

*** Test Cases ***
Example
   IF    ${rc} > 0
       Some keyword
       Another keyword
   END

ELSE

*** Test Cases ***
Example
    IF    ${rc} > 0
        Some keyword
    ELSE
        Another keyword
    END

ELSE IF

*** Test Cases ***
Example
    IF    $rc > 0
        Positive keyword
    ELSE IF    $rc < 0
        Negative keyword
    ELSE IF    $rc == 0
        Zero keyword
    ELSE
        Fail    Unexpected rc: ${rc}
    END

if 的嵌套

*** Keyword ***
Log items
    [Arguments]    @{items}    ${log_values}=True
    IF    not ${items}
        Log to console    No items.
    ELSE IF    len(${items}) == 1
        IF    ${log_values}
            Log to console    One item: ${items}[0]
        ELSE
            Log to console    One item.
        END
    ELSE
        Log to console    ${{len(${items})}} items.
        IF    ${log_values}
            FOR    ${index}    ${item}    IN ENUMERATE    @{items}    start=1
                Log to console    Item ${index}: ${item}
            END
        END
    END

*** Test Cases ***
No items
    Log items

One item without logging value
    Log items    xxx    log_values=False

Multiple items
    Log items    a    b    c