概述

变量是Robot Framework的一个内部特性, 在大多数的测试数据中都可以使用.

大部分情况下, 变量是用于关键字的参数, 不过所有的设置项也都支持用变量来指代设置值. 一般情况下关键字的名称是不能使用变量替代的, 不过, 可以通过 BuiltIn 关键字 Run Keyword 来实现这个效果.

Robot Framework 的变量分为 标量, 列表字典, 分别使用语法格式 ${SCALAR}, @{LIST}&{DICT} 来定义. 此外, 环境变量 可以直接使用语法 %{ENV_VAR} 来获取.

变量在下面的情况中很有用:

  • 当测试数据中的字符串经常变化时. 使用变量的话就只需要在一个地方修改.
  • 当创建系统无关和平台无关的测试数据时. 使用变量替代硬编码的字符串可以非常方便(例如,${RESOURCES} 替代 c:\resources, ${HOST} 替代 10.0.0.1:8080). 因为变量值可以在测试执行时 通过命令行选项设置, 所以修改系统相关的变量非常容易(例如, —variable HOST:10.0.0.2:1234 —variable RESOURCES:/opt/resources).
  • 当需要传递对象而不是字符串参数给关键字时. 这种情况下只能使用变量实现.
  • 当不同的关键字(这些关键字可能来自不同的库)之间需要通信时.可以将一个关键字的返回值先赋值给一个变量, 然后再作为参数传递给另外一个关键字
  • 当某个值太长或者太复杂时. 例如, 使用 ${URL} 比直接使用http://long.domain.name:8080/path/to/service?foo=1&bar=2&zap=42 简短很多.

如果某个变量不存在, 则使用该变量的关键字会失败. 如果要在字面字符串中表示变量的语法格式, 则必须使用 反斜杠转义, 例如 \${NAME}.