If条件下的机器人框架多语句

时间:2015-11-25 22:00:44

标签: if-statement automated-tests conditional-statements robotframework

我是Robot Framework的新手,我正在试图找出如何将多个语句与If条件相关联。

基本预编码计算数组WORDS中的条目,并将值分配给length。

${length}=    Get length    ${WORDS}

接下来我想对阵列的大小进行简单的检查(应该有10个项目)。

${status}=    Set Variable If   ${length} == 10    TRUE    FALSE

现在我想记录结果并传递或失败测试用例。

Run Keyword If    $status == "TRUE"
...  Log    ${status}
...  ELSE
...  Log    ${status}

Run Keyword If     $status != "TRUE"
...  FAIL   Values do not match

我想结合ELSE +记录状态+未通过测试用例,但似乎无法弄明白。在C编程中,我只是简单地支持{}之间的语句并且没问题。

在机器人框架中,我尝试过运行关键字'但没有运气。

...   ELSE   Run keywords 
...     Log    ${status}      
...     FAIL   Values Do Not Match       

我希望有办法实现这一目标。感谢任何意见。

谢谢,

3 个答案:

答案 0 :(得分:3)

使用“运行关键字”是正确的解决方案。但是,要运行多个关键字,您必须使用文字AND

分隔关键字
...    ELSE     run keywords
...    log    ${status}
...    AND    FAIL   Values Do Not Match

答案 1 :(得分:0)

您可以使用log和fail关键字创建关键字并将状态作为参数传递,然后在ELSE语句后使用此关键字。

或者像你一样使用run关键字,但在FAIL之前添加AND语句(在此处阅读更多内容:http://robotframework.org/robotframework/latest/libraries/BuiltIn.html#Run%20Keywords

或者考虑将$ {status}添加到失败消息:失败值不匹配。状态:$ {status}

答案 2 :(得分:0)

    Set Test Variable    ${temp}    rxu
    Run Keyword if    '${temp}'=='rxu'
    ...    Run Keywords
    ...    Log To Console    this is one
    ...    Log To Console    This is two
    ...    ELSE    Run Keyword    Log To Console    another block