Robotframework 在Robot Framework关键字中返回结果?

Robotframework 在Robot Framework关键字中返回结果?,robotframework,Robotframework,运行关键字后如何返回结果 例如: mykey word [Arguments] input ${results}= getme input 但我想使用这些结果: ${results} = mykey word newinput Robot Framework用户指南描述了如何从关键字返回值。看 简短的版本是:在关键字中设置一个变量,并使用[return]testcase设置返回该变量 下面是一个例子: *** Keywords *** mykey word [Argument

运行关键字后如何返回结果

例如:

mykey word [Arguments] input
   ${results}=  getme input
但我想使用这些结果:

 ${results} = mykey word  newinput

Robot Framework用户指南描述了如何从关键字返回值。看

简短的版本是:在关键字中设置一个变量,并使用
[return]
testcase设置返回该变量

下面是一个例子:

*** Keywords ***
mykey word
  [Arguments]  ${input}
  ${string}=  set variable  the string is "${input}"
  [return]  ${string}

*** Test Cases ***
Call custom keyword and get result
  ${results}=  mykey word  newinput
  Should be equal    ${results}    the string is "newinput"
Robot还提供多个关键字,以便从关键字中的任意位置显式返回值:


使用[Return]返回结果

例如:

Time Stamp

      [Return]  ${time_stamp}
      ${secs}=  Get Time  epoch
      ${time}=  Get Time
      ${time_stamp}=  Convert To String      ${secs}

${time_stamp}的值将存储在
时间戳
关键字中。

一个简单的示例可能会有所帮助:

*** Keywords ***
Convert temperature F To Centigrade
  [Arguments]  ${ftemp}
  ${ftemp} =  Convert To Float  ${ftemp}
  ${ctemp} =  ${0.9} * ${ftemp} - ${32}
  [Return]  ${ctemp}

Convert temperature C To Fahrenheit
  [Arguments]  ${ctemp}
  ${ctemp} =  Convert To Float  ${ctemp}
  ${ftemp} =  ${1.8} * ${ctemp} + ${32}
  [Return]  ${ftemp}

*** Test Cases ***
Verify Temperature Conversion  
  ${result} =  Convert temperature F To Centigrade  ${32}
  Should Be Equal  ${result}  ${0}
  ${result} =  Convert temperature C To Fahrenheit  ${0}
  Should Be Equal  ${result}  ${32}

最简单的方法是在关键字末尾使用建议的[Return]标记,尽管还有其他方法


使用关键字集全局变量,可以使变量在其运行的关键字之外可访问,而无需从关键字本身返回任何内容。如果您希望避免将主变量列表弄得一团糟,并且有几个变量放在后台,但使用时要像使用任何全局变量一样小心,那么这一点非常有用。

请澄清您的问题好吗?关于RF,最重要的是,如果您曾经使用过任何其他语言编程,假装你什么都不知道。(除非所讨论的语言是基本的,在这种情况下,你会很好。)哇@Keith Tyler,这是我最近看到的一个更没有成效的评论(仍然不是“最”的),也是不必要的。RF是一个通用的自动化测试框架,它甚至不想成为一种编程语言;尽管有些人试图插手此事(指控我有罪)。虽然它是通用的,用于自动测试,但它确实提供了一些基本的编码概念——从控制流语句(循环、分支)、子例程(关键字)到作用域。在这个问题的上下文中,返回值并不是基本的排他功能;)。在RF中,这是以与(几乎)所有主流编程语言相同的方式完成的——声明传回其执行的结果/结果。毫不奇怪,这是由一个名为
[Return]
的语句完成的,它提供了要返回的值(是的,复数,可以返回元组,接受,基本!请编辑您的答案,并添加有关其工作原理的说明或信息,以使其他人能够轻松理解。我使用robotframework 3.2.1,返回时未识别小写字母r,这需要R@AdamMierzwiak:那不是真的。机器人不关心这个案子。答案中的代码与robot 3.2.1ok配合使用效果良好,因此必须解决robot的插件问题pycharm@AdamMierzwiak:那完全有可能。我不使用pycharm,所以我不知道。
# This example will explain the usage of build in library keywords.
# The "Evaluate", "Log", and "Return" settings by using Fahrenheit to Centigrade
# conversion logic on the variable ${var1}.

*** Variables ***
${var1}     32
*** Keywords ***
Convert temperature Fahrenheit To Centigrade
  [Arguments]  ${ftemp}
  ${ftemp} =  Convert To Number     ${ftemp}
  ${ctemp} =  evaluate  (5 * (${ftemp} - 32))/9
  [Return]  ${ctemp}


*** Test Cases ***
Verify Temperature Conversion F to C
  ${result} =  Convert temperature Fahrenheit To Centigrade  ${var1}
  Log  ${result}
  Should Be Equal As Numbers    ${result}   0.0