web-dev-qa-db-ja.com

Robot Frameworkキーワードで結果を返しますか?

キーワードの実行後に結果を返すにはどうすればよいですか?

例:

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

しかし、私はこれらの結果を使いたいです:

 ${results} = mykey Word  newinput
17

Robot Frameworkユーザーガイドでは、キーワードから値を返す方法について説明しています。 ユーザーキーワードの戻り値を参照してください。

短いバージョンは、キーワードに変数を設定し、[return]その変数を返すテストケース設定。

例、パイプ区切りのプレーンテキスト形式を使用:

*** 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}
30
Bryan Oakley

簡単な例が役立つかもしれません:

*** 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}
11
msudder

[Return]を使用して結果を返します。

例は次のとおりです。

Time Stamp

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

$ {time_stamp}の値はTime Stampキーワードに格納されます。

3

他の方法が存在しますが、最も簡単な方法は、キーワードの最後に提案された[Return]タグを使用することです。

キーワードSet Global Variableを使用すると、キーワード自体から何も返さなくても、実行されたキーワードの外部で変数にアクセスできるようになります。これは、メイン変数リストが雑然とするのを避け、バックグラウンドにいくつかの変数を配置したい場合に役立ちますが、グローバル変数と同じように注意して使用してください。

1
Brandon Olson
# 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
0
Ravi Kiran Basa