Robot Framework可以支持外部变量吗?
Can Robot Framework Support External Variables?
我正在尝试创建一个中央文件,其中包含我们在测试用例中使用的所有变量(例如 ${BROWSER} 变量)。
我还为许多自定义关键字创建了一个中央文件,我正在尝试将中央变量文件用作中央关键字文件的资源...可以说是模块化
但是关键字不 运行 因为中央文件中的变量未被识别。
所以我的问题是,有没有人在RF测试中成功调用外部变量resource/case?如果是这样,你能解释一下你是怎么做到的吗?
谢谢!
有几种方法,都记录在Robot Framework Users Guide.
使用命令行参数
您可以使用 command line options (--variable) 选项在命令行上定义变量。例如:
pybot --variable FOO:hello mysuite.robot
您可以通过将变量放在参数文件中来定义多个变量,然后您可以使用 --argumentfile
选项在命令行中包含参数文件。
例如,您可以创建一个名为 "variables.args" 的文件,如下所示:
--variable FOO:Hello
--variable BAR:World
然后您可以像这样在命令行上使用此文件:
pybot --argumentfile variables.args mysuite.robot
我的团队非常依赖这个。我们有两个 类 个参数文件:environments 和 scenarios。在环境文件中,我们放置了该环境独有的 URL、用户名、密码等。在场景文件中,我们将放置该场景特有的东西,例如 ${BROWSER}
的定义、运行 的套件等。然后,我们的 pybot 命令非常简单:`pybot --argumentfile environment/qa1.args --argumentfile scenarios/chrome_smoke_test.args
使用变量文件
如果您的中央文件是 python 脚本,您可以通过在设置中包含该文件来访问所有变量。这些被称为 variable files。
例如,您可以创建一个名为 "variables.py" 的文件,如下所示:
FOO = "Hello"
BAR = "World"
然后您可以像这样在测试套件中使用该文件:
*** Settings ***
| Variables | variables.py
*** Test Cases ***
| Example
| | Should be equal | ${FOO} | Hello
| | Should be equal | ${BAR} | World
使用资源文件
另一种方法是在 resource files 中定义变量。资源文件允许您使用机器人语法来定义变量。
例如,您可以创建一个名为 "variables.robot" 的文件,如下所示:
*** Variables ***
| ${FOO} | Hello
| ${BAR} | World
然后您可以将其包含在这样的测试中:
*** Settings ***
| Resource | Variables.robot
*** Test Cases ***
| Example
| | Should be equal | ${FOO} | Hello
| | Should be equal | ${BAR} | World
使用环境变量
另一种使用外部变量的方法是定义environment variables。访问变量时,可以使用 %
而不是 $
来访问环境变量。
例如,假设您已经定义了环境变量 HOME
,您可以在测试中以 %{HOME}
的形式访问它。
我正在尝试创建一个中央文件,其中包含我们在测试用例中使用的所有变量(例如 ${BROWSER} 变量)。
我还为许多自定义关键字创建了一个中央文件,我正在尝试将中央变量文件用作中央关键字文件的资源...可以说是模块化
但是关键字不 运行 因为中央文件中的变量未被识别。
所以我的问题是,有没有人在RF测试中成功调用外部变量resource/case?如果是这样,你能解释一下你是怎么做到的吗?
谢谢!
有几种方法,都记录在Robot Framework Users Guide.
使用命令行参数
您可以使用 command line options (--variable) 选项在命令行上定义变量。例如:
pybot --variable FOO:hello mysuite.robot
您可以通过将变量放在参数文件中来定义多个变量,然后您可以使用 --argumentfile
选项在命令行中包含参数文件。
例如,您可以创建一个名为 "variables.args" 的文件,如下所示:
--variable FOO:Hello
--variable BAR:World
然后您可以像这样在命令行上使用此文件:
pybot --argumentfile variables.args mysuite.robot
我的团队非常依赖这个。我们有两个 类 个参数文件:environments 和 scenarios。在环境文件中,我们放置了该环境独有的 URL、用户名、密码等。在场景文件中,我们将放置该场景特有的东西,例如 ${BROWSER}
的定义、运行 的套件等。然后,我们的 pybot 命令非常简单:`pybot --argumentfile environment/qa1.args --argumentfile scenarios/chrome_smoke_test.args
使用变量文件
如果您的中央文件是 python 脚本,您可以通过在设置中包含该文件来访问所有变量。这些被称为 variable files。
例如,您可以创建一个名为 "variables.py" 的文件,如下所示:
FOO = "Hello"
BAR = "World"
然后您可以像这样在测试套件中使用该文件:
*** Settings ***
| Variables | variables.py
*** Test Cases ***
| Example
| | Should be equal | ${FOO} | Hello
| | Should be equal | ${BAR} | World
使用资源文件
另一种方法是在 resource files 中定义变量。资源文件允许您使用机器人语法来定义变量。
例如,您可以创建一个名为 "variables.robot" 的文件,如下所示:
*** Variables ***
| ${FOO} | Hello
| ${BAR} | World
然后您可以将其包含在这样的测试中:
*** Settings ***
| Resource | Variables.robot
*** Test Cases ***
| Example
| | Should be equal | ${FOO} | Hello
| | Should be equal | ${BAR} | World
使用环境变量
另一种使用外部变量的方法是定义environment variables。访问变量时,可以使用 %
而不是 $
来访问环境变量。
例如,假设您已经定义了环境变量 HOME
,您可以在测试中以 %{HOME}
的形式访问它。