robotframework中变量赋值的简化/实现

robotframework中变量赋值的简化/实现,robotframework,Robotframework,考虑以下robotframework代码示例: *** Variables *** ${VAR_1} any value ${VAR_2} another value *** Test Cases *** For Example only ${VAR_1}= Some Conversion ${VAR_1} ${VAR_2}= Some Conversion ${VAR_2} A User Keyword

考虑以下robotframework代码示例:

*** Variables ***
${VAR_1}          any value
${VAR_2}          another value

*** Test Cases ***
For Example only
    ${VAR_1}=    Some Conversion    ${VAR_1}
    ${VAR_2}=    Some Conversion    ${VAR_2}
    A User Keyword    ${VAR_1}    ${VAR_2}

Desired Notation
    A User Keyword    Some Conversion    ${VAR_1}    Some Conversion    ${VAR_2}

*** Keywords ***
Some Conversion
    [Arguments]    ${value_to_convert}
    ${value_to_convert}=    Catenate    ${value_to_convert}    Foobar
    [Return]    ${value_to_convert}

A User Keyword
    [Arguments]    ${arg1}    ${arg2}
    Log    ${arg1}
    Log    ${arg2}
问题:是否有可能将工作测试用例简化为(非工作的)
所需的符号,或者-我是否可以使用关键字的返回值作为参数传递,而不进行显式赋值

请澄清:

  • 某些转换
    将更加复杂,并且在 jrobotemote库
  • 将助理移动到用户关键字
是不正确的 没有有用的解决方案,因为将有许多关键字 使用相同功能的参数数量不同
是的,这是可能的。您可以编写自己的关键字来调用作为参数传入的其他关键字

它看起来像这样:

*** Keywords ***
A User Keyword
    [Arguments]  ${keyword1}  ${var1}  ${keyword2}  ${var2}
    ${var1}=  Run keyword  ${keyword1}  ${var1}
    ${var2}=  Run keyword  ${keyword2}  ${var2}
    log  ${var1}
    log  ${var2}
您将使用与示例中完全相同的关键字:

A User Keyword  Some Conversion  ${VAR_1}  Some Conversion  ${VAR_2}

是的,这是可能的。您可以编写自己的关键字来调用作为参数传入的其他关键字

它看起来像这样:

*** Keywords ***
A User Keyword
    [Arguments]  ${keyword1}  ${var1}  ${keyword2}  ${var2}
    ${var1}=  Run keyword  ${keyword1}  ${var1}
    ${var2}=  Run keyword  ${keyword2}  ${var2}
    log  ${var1}
    log  ${var2}
您将使用与示例中完全相同的关键字:

A User Keyword  Some Conversion  ${VAR_1}  Some Conversion  ${VAR_2}

关键字的参数值赋值不能是其他关键字的返回值

正如@Bryan Oakly所强调的,可以通过巧妙地使用
运行关键字
来模拟外观,因为您强调了这将不起作用,因为赋值可能并不总是使用关键字,甚至使用具有相同参数数目的关键字


因此,最好的方法是您已经在做的事情,将值分配给变量,然后将变量分配给关键字参数。

关键字的参数值分配不能是另一个关键字的返回值

正如@Bryan Oakly所强调的,可以通过巧妙地使用
运行关键字
来模拟外观,因为您强调了这将不起作用,因为赋值可能并不总是使用关键字,甚至使用具有相同参数数目的关键字


因此,最好的方法是您已经在做的事情,将值分配给变量,然后将变量分配给关键字参数。

这是一个很难接受的决定。在我的情况下,你的答案是正确的(以我预期的方式不可能),但是@Bryan Oakly提供的解决方法可能会帮助更多的人遇到同样的问题。谢谢你的澄清。这是一个很难接受的决定。在我的情况下,你的答案是正确的(以我预期的方式不可能),但是@Bryan Oakly提供的解决方法可能会帮助更多的人遇到同样的问题。谢谢你的澄清。