在 Robot Framework 中将多个输入参数连接在一起的最佳方法是什么?
What's the best method to catenate together multiple input parameters in Robot Framework?
我试图最小化我的机器人关键字,在我的 URL 测试中,我有时必须从一组输入中建立一个 URL,这可能因测试而异。长度可以是 4 到 7 个输入参数,我正在连接传回一个 URL 以及传入的任何输入参数。
如果我有一个关键字执行以下操作:
inputs: ${location01} ${location02} ${location03}=${EMPTY} ${location04}=${EMPTY}
${my_url} = Catenate SEPARATOR=/ ${location01} ${location02} ${location03} ${location04}
[Return] ${my_url}
测试 ${location03} 是否为空的最佳方法是什么,因此我可以跳过其余部分?
当我尝试测试 ${EMPTY} 时,以下内容将为假
${my_url} Run Keyword IF '${location03}'!='${EMPTY} Catenate SEPARATOR=/ ${location01} ${location02} ${location03} ${location04}
我仍然得到一个连接的字符串,但最后有额外的 /'s,所以 ${my_url} 看起来像:
${my_url} = ${location01}/${location02}//
当我想要的时候:
${my_url} = ${location01}/${location02}
我可能不知道 Robot 是如何进行检查和初始化我的变量的,我确信目前有一种方法可以做到这一点。
听起来您需要使用@{args} 来处理可变数量的参数:
*** Keywords ***
Create URL
[Arguments] @{args}
${url}= Catenate SEPARATOR=/ @{args}
*** Test Cases ***
Test Url
Create URL http://whosebug.com questions robotframework
Create URL http://whosebug.com questions
我试图最小化我的机器人关键字,在我的 URL 测试中,我有时必须从一组输入中建立一个 URL,这可能因测试而异。长度可以是 4 到 7 个输入参数,我正在连接传回一个 URL 以及传入的任何输入参数。
如果我有一个关键字执行以下操作:
inputs: ${location01} ${location02} ${location03}=${EMPTY} ${location04}=${EMPTY}
${my_url} = Catenate SEPARATOR=/ ${location01} ${location02} ${location03} ${location04}
[Return] ${my_url}
测试 ${location03} 是否为空的最佳方法是什么,因此我可以跳过其余部分?
当我尝试测试 ${EMPTY} 时,以下内容将为假
${my_url} Run Keyword IF '${location03}'!='${EMPTY} Catenate SEPARATOR=/ ${location01} ${location02} ${location03} ${location04}
我仍然得到一个连接的字符串,但最后有额外的 /'s,所以 ${my_url} 看起来像:
${my_url} = ${location01}/${location02}//
当我想要的时候:
${my_url} = ${location01}/${location02}
我可能不知道 Robot 是如何进行检查和初始化我的变量的,我确信目前有一种方法可以做到这一点。
听起来您需要使用@{args} 来处理可变数量的参数:
*** Keywords ***
Create URL
[Arguments] @{args}
${url}= Catenate SEPARATOR=/ @{args}
*** Test Cases ***
Test Url
Create URL http://whosebug.com questions robotframework
Create URL http://whosebug.com questions