《我的RobotFramework书》1-6-4 变量的属性和作用范围

来源:互联网 发布:类似快看小说的软件 编辑:程序博客网 时间:2024/06/07 22:16

变量的属性和作用范围

作者: 虞科敏

属性, Properties

命令行设置的变量

  • 命令行设置的变量拥有在测试开始执行前,所有能设置变量的最高优先级: 可以覆盖Test Case File中
  • Variable Table, 导入的Resource File和Variable File的相关设置
  • --variable (-v) 优先于 --variablefile (-V)
  • 如果设置同一个变量多次,后面的设置会覆盖前面的设置
  • 可以在启动脚本中设置变量,这种情况会覆盖命令行选项的设置同名变量
  • 如果在多个变量文件中设置同名变量,第一次设置的变量具有最高优先级(先导入优先原则)

在Test Case File的Vaiable Table中设置的变量

  • 对于本文件中的所有Test Case可用
  • 会覆盖文件中通过导入Reousrce File和Variable File创建的同名变量
  • 本文件中其他的表(如Setting Table可以使用本文件中Vairable Table中创建的变量)

通过导入Resource File和Variable File设置的变量

  • 在Test Data中设置的变量中,优先级最低
  • 来自Resource File的变量 和 来自Variable File的变量,优先级相同
  • 对于来自Resource File和Variable File的同名变量,采用"先导入优先原则"
  • 如果一个Resource File导入其他Rsource File和Variable File, 采用"本地优先于导入"的原则
  • 从Resource File和Variable File导入的变量,对于导入它们的文件中的Variable Table不可用

    Tips: Variable Table的处理先于Setting Table的处理(Resource File和Variable File在Setting Table中被导入)

在执行过程中设置的变量

在执行过程中设置的变量(通过关键字返回值设置,或者使用内建变量设置关键字)会覆盖其作用域内的同名变量
但其不会影响作用域外的变量

内建变量

内建变量拥有最高优先级,不能被Vairable Table或者命令行所覆盖; 但它们可能被框架重置
数字变量是个例外: 当变量不能被找到时,它们会被动态解析; 这样它们可能被覆盖,但不推荐这样做!

作用范围, Scope

全局范围

以下变量具有全局范围:

通过命令行选项创建的变量  内建关键字"Set Global Variable"设置(和修改)全局变量  内建变量

全局范围变量,建议使用全大写命名

Test Suite范围

以下变量具有Test Suite范围:

Varaible Table创建的变量通过Resource File和Variable File导入的变量  内建关键字"Set Suite Variable"设置(和修改)的变量

Test Suite范围变量,建议使用全大写命名

Test Case范围

以下变量具有Test Case范围:

内建关键字"Set Case Variable"设置(和修改)的变量

Test Case范围变量,建议使用全大写命名

本地(Local)范围

以下变量具有Local范围:

通过扩展关键字的返回值创建的变量,用户自定义关键字使用其作为参数

Local范围变量,建议使用全小写命名

0 0
原创粉丝点击