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还提供多个关键字,以便从关键字中的任意位置显式返回值:
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