Robot Framework 中的静态变量
Posted
技术标签:
【中文标题】Robot Framework 中的静态变量【英文标题】:Static Variables in Robot Framework 【发布时间】:2019-06-04 04:07:16 【问题描述】:机器人框架中是否有静态类型的变量?如果是这样,我该如何调用它?还是通过python文件来解决?
我要解决的问题是,我希望一个变量设置一次并让它记住设置的值。不幸的是,这个变量在一个资源文件中(它与我的测试套件文件分开)。
【问题讨论】:
是的,我将变量设置为它开始的时间 那你可以看看我的回答。 您是否要求真正静态的东西,如果您在设置后尝试更改值,机器人会抛出错误? @BryanOakley 这不是我要解决的问题,但很想知道如何实现这样的功能 那么,“静态”你只是在问如何设置一个变量,而不在乎它是不可更改的吗?我只是想理解你所说的“静态”是什么意思。 【参考方案1】:是的,您可以在机器人框架中设置静态变量。您的资源文件中应该有类似的内容。
*** Settings ***
...
*** Variables ***
$MyVariable MyValue
*** Keywords ***
...
你的测试应该是这样的
*** Settings ***
Resource (Path to resource file)
*** Test Cases ***
My Test Case
[Documentation] This is documentation
My keyword MyVariable
【讨论】:
【参考方案2】:鉴于以下套件结构:
/test_folder
__init__.robot
variables.resource
test_s1.robot
test_s2.robot
test_s3.robot
现在在您的 variables.resource
文件中,您可以创建和初始化您的变量,例如:
*** Keywords ***
Setup Static Variable
$my_static= Init My Static # Get time here
Set Suite Variable $my_static children=true
在这里,使用Set Suite Variable,您可以使您的变量在当前套件(实际调用此关键字的位置)中可访问,并在所有子套件中使用children=true
选项。这意味着例如文件夹中的所有测试套件文件。
下一步是创建您的__init__.robot
文件:
*** Settings ***
Resource variables.resource
Suite Setup Setup Static Variable
当前套件为test_folder
,子套件为test_s1
、test_s2
和test_s3
。 $my_static
将在所有这些中访问。 Setup Static Variable
关键字会被执行一次,当执行到test_folder
时。
在您的测试套件文件中,即使不导入资源文件,您也可以使用该变量。
test_s1.robot:
*** Test Cases ***
My First Test
Log $my_static
如果您的变量是一个常量并且在运行时未计算,@Justin 的答案就是您要寻找的。p>
【讨论】:
感谢 Bence 的回复,我已经尝试了您的解决方案,但似乎不喜欢它。我收到错误消息:“我的第一次测试 | 失败 | 未找到变量 '$my_static'。”我使用 RIDE 作为我的编辑器,init.robot 文件是否正确?我环顾四周,有人说你不应该在 init 文件中调用资源文件? @WorkerBee 你如何开始测试?在日志文件中,您可以看到已执行的套件设置吗?获得 init.py 后,您必须从该文件夹启动您的套件。因此,在我的示例中,使用以下命令行选项:--suite test_folder.test_s1
。关于init文件中的资源文件,我自己就是这样用的,目前没发现有什么问题。我也会环顾四周。以上是关于Robot Framework 中的静态变量的主要内容,如果未能解决你的问题,请参考以下文章