【问题标题】:how to use variable from one robot file into another robot file in Robot Framework如何将一个机器人文件中的变量用于机器人框架中的另一个机器人文件
【发布时间】:2018-01-23 23:33:06
【问题描述】:

这里是例子 add.robot 文件

*** Settings ***
Library   SudsLibrary
Library   XML
Library   String

*** Test Cases ***
Test Webservice

    create Soap Client    http://www.dneonline.com/calculator.asmx?wsdl

    ${add}    Create Wsdl Object   Add
    ${add.intA}    Set Variable    3
    ${add.intB}    Set Variable    4

    # # call soap web service
    call soap method  Add  ${Add}
    ${soap_response}    Get Last Received
    log to console  ${soap_response}
    ${XML_object}=  Parse XML  ${soap_response}
    log    ${XML_object}
    ${result}  get element text  ${XML_object}  .//AddResult
    set global variable  ${result}

substract.robot 文件

试图在此文件中使用结果变量,但显示错误。 两个文件都存在于同一个文件夹中

*** Settings ***
Library   SudsLibrary
Library   XML
Library   String


*** Test Cases ***
Test Webservice
    create Soap Client    http://www.dneonline.com/calculator.asmx?wsdl

    ${subs}    Create Wsdl Object   Subtract
    ${subs.intA}    Set Variable   ${result} #shows error
    ${subs.intB}    Set Variable    4

    # # call soap web service
    call soap method  Subtract  ${subs}
    ${soap_response}    Get Last Received
    log to console  ${soap_response}
    ${XML_object}=  Parse XML  ${soap_response}
    log    ${XML_object}
    ${result11}=  get element text  ${XML_object}  .//SubtractResult

【问题讨论】:

  • 请看修改后的例子

标签: python-2.7 robotframework


【解决方案1】:

最佳做法是让每个文件独立,因此我鼓励您重写测试,使它们不相互依赖。

全局机器人变量

话虽如此,如果你想在一个文件中设置一个变量并能够在另一个文件中使用它,你需要使用内置关键字Set global variable

来自文档:

使用此关键字设置的变量在设置后执行的所有测试用例和套件中全局可用。因此,使用该关键字设置变量与使用选项--variable 或--variablefile 从命令行创建具有相同的效果。因为这个关键字可以随处改变变量,所以应该小心使用。

您的问题提到了var1,但您的代码没有var1。如果您打算写${node}(出现在您问题的原始版本中),您可以这样做:

set global variable  ${node}

全局库范围

如果您不是询问机器人变量,而是询问如何让您的库在套件之间保留变量,则需要将库中的 ROBOT_LIBRARY_SCOPE 变量设置为 "GLOBAL"。例如:

class token1:
    ROBOT_LIBRARY_SCOPE = "GLOBAL"
    ...

欲了解更多信息,请参阅Test library scope

【讨论】:

  • 我尝试在一个机器人文件中使用全局变量,并在另一个文件中提到它。它说找不到变量定义。
  • @madhur:那你做错了什么。如果没有看到更具体的内容,我们将无法帮助您。毫无疑问,全局变量在机器人框架测试中起作用。
  • 我已经在链接中添加了两个文件,我想将 add.robot 中的变量结果使用到另一个文件 substract.robot 有时间请参考,点击下载 1.ufile.io/h7vta2.@ 987654324@
  • @madhur:请不要链接到外部文件。编辑您的问题并提供minimal reproducible example
  • add.robot 文件 ...设置全局变量 ${result} 10 然后减去.robot 文件有一个变量值1 ${result}
【解决方案2】:

你可以试试这个。 值形式 Test 1.robot 用于 Test 2.robot

测试1.机器人

*** keywords ***
Test1 Webservice
   set global variable  ${node}

测试2.机器人

*** Settings ***
Resource Test 1.robot

*** Test Cases ***
Test2 Webservice
  Test 1.Test1Webservice
  ${node1} set Variable ${node} 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-05
    • 2021-09-09
    • 2014-11-28
    • 2016-05-19
    • 2018-03-13
    • 2013-02-13
    • 1970-01-01
    • 2018-06-27
    相关资源
    最近更新 更多