在Robot Framework中连接多个输入参数的最佳方法是什么?

时间:2016-08-03 10:03:04

标签: url concatenation robotframework

我正在尝试最小化我的机器人关键字,在我的网址测试中,我有时必须从一组输入中建立一个URL,这可能会因测试而异。长度可以是4到7个输入参数,我连接传回一个URL,传入任何输入参数。

如果我有关键字执行以下操作:

inputs: ${location01} ${location02} ${location03}=${EMPTY} ${location04}=${EMPTY}
${my_url} = Catenate SEPARATOR=/ ${location01} ${location02} ${location03} ${location04}
[Return] ${my_url}

测试$ {location03}是否为空的最佳方法是什么,因此我可以跳过其余的?

当我尝试测试$ {EMPTY}时,以下内容将为false

${my_url} Run Keyword IF '${location03}'!='${EMPTY} Catenate SEPARATOR=/ ${location01} ${location02} ${location03} ${location04}

我仍然得到一个链接的字符串,但结尾处有额外的/,所以$ {my_url}看起来像:

${my_url} = ${location01}/${location02}//

我想要的时候:

${my_url} = ${location01}/${location02}

我可能不知道机器人是如何进行检查,并初始化我的变量,我确信有一种方法可以做到这一点,目前正在躲避我。

1 个答案:

答案 0 :(得分:4)

听起来你需要使用@ {args}来处理可变数量的参数:

*** Keywords ***
Create URL
    [Arguments]    @{args}
    ${url}=        Catenate    SEPARATOR=/        @{args}

*** Test Cases ***
Test Url
    Create URL     http://stackoverflow.com       questions      robotframework
    Create URL     http://stackoverflow.com       questions