【问题标题】:How to Access Global Variable in Robot framework如何在 Robot 框架中访问全局变量
【发布时间】:2019-03-20 19:42:33
【问题描述】:

我正在尝试使用在一个文件中设置的变量并希望访问另一个文件中的变量。如何在 Robot 框架中做到这一点。

目前我的文件 test_1.robot 有变量

*** Settings ***
Library           Collections 

*** Test Cases ***
Getting a valid response
    Create Http Session    rest_session    ${service_url}
    Set Global Variable   ${HEADERS}

现在我想访问另一个文件 test_2.robot 中的${HEADERS}。在 test_2.robot 我试图将标题打印到控制台。但我没有得到这样的变量${HEADERS}。

*** Settings ***
Library           Collections 

*** Test Cases ***
Getting a valid response
    Create Http Session    rest_session    ${service_url}
    Log to console  ${HEADERS}

谁能告诉我我错过了什么?

【问题讨论】:

  • 设置全局变量的语法如下:Set Global Variable ${VARIABLE_NAME} VALUE
  • 是的,我在父文件 (test_1.robot) 中正确执行该变量打印正常。但是在 test_2.robot 中无法访问它。
  • 在你提供你没有做的例子中,你只有Set Global Variable ${HEADERS}
  • 它是一个示例代码。在我的本地机器上,我尝试打印它。这里我没有分享完整的代码。
  • 请提供最小、完整和可验证的示例stackoverflow.com/help/mcve

标签: robotframework


【解决方案1】:

在您的示例中,${HEADERS} 变量为空,如果您想在其他文件中使用,您需要将其分配给某个对象并在文件的 *** Variables *** 部分创建变量。

这是使用全局变量的简单方法

你可以使用Set Global Variable:

使变量在所有测试和套件中全局可用。

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

Set Global Variable    ${Header}    ${xpath_to_header}

或者你可以使用Set Suite Variable:

使变量在当前范围内的任何地方都可用 套房。

使用此关键字设置的变量在 当前执行的测试套件的范围。设置变量 因此,此关键字与使用 测试数据文件中的变量表或从变量中导入它们 文件。

可能的子测试套件看不到使用此关键字设置的变量 默认。从 Robot Framework 2.9 开始,可以控制 通过使用 children= 作为最后一个参数。如果指定 是一个非空字符串或任何其他被认为是真的值 Python,该变量也设置为子套件。父母和 兄弟套件永远不会看到使用此关键字设置的变量。

变量名可以是普通变量名 (例如 ${NAME})或转义格式为 \${NAME} 或 $NAME。多变的 可以使用与创建变量时相同的语法给出值 在变量表中。

如果一个变量已经存在于新的范围内,它的值将是 覆盖。否则会创建一个新变量。如果一个变量 当前范围内已经存在,该值可以留空 并且新范围内的变量获取范围内的值 当前范围。

Set Suite Variable     ${Header}    ${xpath_to_header}

现在您可以在测试用例中使用您的 ${Header} 变量。现在您可以按如下方式记录变量

log  ${Header}

完整示例:

*** Settings ***


*** Keywords ***
Random Global Variable
    ${Header}=   Set Variable  xpath=//div...
    set suite variable    ${Header}

*** Test Cases ***
Example
    log to console   ${Header}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-01
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    • 2023-03-24
    • 2016-05-04
    • 1970-01-01
    相关资源
    最近更新 更多