Вернуть результаты в ключевое слово Robot Framework?

Как вернуть результаты после запуска ключевого слова?

Пример:

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

Но я хочу использовать эти результаты:

 ${results} = mykey word  newinput

Ответ 1

Руководство пользователя системы роботов описывает, как вернуть значение из ключевого слова. См. Значения возвращаемых значений ключевого слова

Краткая версия: установите переменную в ключевое слово и используйте параметр [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}

Ответ 2

Простой пример может помочь:

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

Ответ 3

используйте [Return], чтобы возвращать результаты Пример:

Time Stamp

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

Значение ${time_stamp} будет сохранено в ключевом слове Time Stamp

Ответ 4

#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

Ответ 5

Самый простой способ - использовать предложенный тег [Return] в конце вашего ключевого слова, хотя существуют другие способы.

Используя ключевое слово Set Global Variable, вы можете сделать переменную доступной вне ключевого слова, в которой она выполняется, без необходимости возвращать что-либо из самого ключевого слова. Это полезно, если вы хотите избежать загромождения списка основных переменных и иметь несколько переменных, сидящих в фоновом режиме, но использовать его с такой же осторожностью, как и любая глобальная переменная.