首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >机器人框架能支持外部变量吗?

机器人框架能支持外部变量吗?
EN

Stack Overflow用户
提问于 2015-06-18 14:17:25
回答 1查看 2.8K关注 0票数 0

我正在尝试创建一个中央文件,其中包含我们在测试用例中使用的所有变量(例如${BROWSER}变量)。

我还为许多自定义关键字创建了一个中心文件,我试图使用中心变量文件作为中心关键字file...modularization的资源。

但是,关键字不运行,因为无法识别中央文件中的变量。

所以我的问题是,是否有人成功地在RF测试资源/用例中调用了外部变量?如果是的话,你能解释一下你是怎么做到的吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-18 15:06:06

有几种方法,所有这些都记录在机器人框架用户指南中。

使用命令行参数

您可以使用命令行选项 (-变量)选项在命令行中定义变量。例如:

代码语言:javascript
复制
pybot --variable FOO:hello mysuite.robot

您可以通过将变量放入参数文件来定义多个变量,然后可以使用--argumentfile选项将参数文件包含在命令行中。

例如,您可以创建一个名为"variables.args“的文件,如下所示:

代码语言:javascript
复制
--variable FOO:Hello
--variable BAR:World

然后,您可以在命令行中使用这个文件,如下所示:

代码语言:javascript
复制
pybot --argumentfile variables.args mysuite.robot

我的团队非常依赖这个。我们有两类参数文件:环境和场景。在环境文件中,我们放置URL、用户名、密码等,这些都是该环境所特有的。在场景文件中,我们将为该场景设置惟一的内容,例如${BROWSER}的定义、要运行的套件等。然后,我们的pybot命令非常简单:‘pybot --argumentfile环境/qa1.args --argumentfile场景/chrome烟雾_test.args

使用可变文件

如果您的中央文件是python脚本,则可以通过在设置中包含该文件来访问所有变量。这些被称为可变文件

例如,您可以创建一个文件名为"variables.py“的文件,如下所示:

代码语言:javascript
复制
FOO = "Hello"
BAR = "World"

然后,您可以在这样的测试套件中使用该文件:

代码语言:javascript
复制
*** Settings ***
| Variables | variables.py

*** Test Cases ***
| Example
| | Should be equal | ${FOO} | Hello
| | Should be equal | ${BAR} | World

使用资源文件

另一种方法是在资源文件中定义变量。资源文件允许您使用机器人语法来定义变量。

例如,可以创建一个名为"variables.robot“的文件,如下所示:

代码语言:javascript
复制
*** Variables ***
| ${FOO} | Hello
| ${BAR} | World

然后,您可以将它包含在这样的测试中:

代码语言:javascript
复制
*** Settings ***
| Resource | Variables.robot

*** Test Cases ***
| Example
| | Should be equal | ${FOO} | Hello
| | Should be equal | ${BAR} | World

使用环境变量

使用外部变量的另一种方法是定义环境变量。在访问变量时,可以使用%而不是$访问环境变量。

例如,假设您已经定义了环境变量HOME,您可以在测试中以%{HOME}的形式访问它。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30917923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档