2011-09-28 116 views
10

如何在运行关键字后返回结果?返回Robot Framework关键字的结果?

例子:

mykey word [Arguments] input 
    ${results}= getme input 

但我想用这个结果:

${results} = mykey word newinput 
+1

你能否澄清你的问题? – Argote

+0

关于RF最重要的事情是,如果你曾经用其他语言编程过,就假装你都不知道。 (除非有问题的语言是BASIC,在这种情况下,你会没事的。) –

回答

23

机器人框架的用户指南介绍了如何从一个关键字返回一个值。请参阅User keyword return values

简短版本是:在关键字中设置一个变量,并使用[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 
| | log | ${results} 
3

使用[返回],返回结果 实施例是:的$ {TIME_STAMP}

Time Stamp 

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

值将被存储在时间戳关键字

6

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

*** 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} 
0
#This Example will explain the usage of build in library Keywords 
#"Evaluate" ,"Log" and "Return" Setting 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 
+0

请编辑你的答案,并添加说明或信息,说明它是如何工作的,以便他人能够轻松理解 – koceeng

0

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

使用关键字设置全局变量,您可以在运行的关键字之外创建一个可访问的变量,而无需从关键字本身返回任何内容。如果您想要避免混淆主变量列表并在后台放置一些变量,那么这非常有用,但与其他全局变量一样谨慎使用它。

相关问题