变量的优先级和作用域


变量的优先级和作用域

来自不同来源的变量具有不同的优先级,并且在不同的范围内可用。

变量的优先级

  • 命令行中的变量

在实际测试开始执行之前,可以在 命令行 中设置的变量具有最高的优先级。它们会 覆盖 在测试用例文件中的 变量表 中以及在测试数据中 导入的资源和变量文件 中创建的可能变量。

  • 测试用例文件中的变量表

使用测试用例文件中的 变量表 创建的变量可用于该文件中的所有测试用例。这些变量将 覆盖 导入的资源和变量文件中具有相同名称的可能变量。

  • 导入的资源和变量文件

从资源和变量文件导入的变量在测试数据中创建的所有变量中具有 最低 的优先级。

  • 测试执行期间设置的变量

在测试执行过程中使用关键字的返回值或使用Set Test / Suite / Global Variable关键字设置的变量始终会覆盖设置范围内可能存在的现有变量。

  • 内置变量

${TEMPDIR}${TEST_NAME}等内置变量在所有变量中具有最高优先级。无法使用 变量表 或从 命令行 覆盖它们。

变量作用域

根据变量的创建位置和方式,变量可以具有全局,测试套件,测试用例或局部作用域。

  • 全局变量

全局变量在测试数据中随处可见。

这些变量通常是在命令行中使用--variable--variablefile选项设置的,但是也可以在测试数据中的任何位置使用BuiltIn关键字Set Global Variable创建新的全局变量或更改现有的全局变量。

另外,内置变量也是全局的。

  • 测试套件作用域

具有测试套件范围的变量可在定义或导入测试套件的任何位置使用。

它们可以在变量表中创建,可以从资源和变量文件导入,也可以在测试执行期间使用BuiltIn关键字Set Suite Variable进行设置。

  • 测试用例作用域

在测试用例以及测试使用的所有用户关键字中,具有测试用例范围的变量都是可见的。最初,此范围内没有变量,但是可以通过在测试用例中的任何位置使用BuiltIn关键字Set Test Variable来创建它们。

  • 局部作用域

测试用例和用户关键字具有局部变量作用域,其他测试或关键字看不到该作用域。

可以使用已执行关键字的返回值来创建局部变量,而用户关键字也可以将其作为参数。