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_s1test_s2test_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 中的静态变量的主要内容,如果未能解决你的问题,请参考以下文章

java 在调试的时候如何查看类中的静态变量值

通过java中不同类中的静态方法设置和获取静态变量值

Robot Framework使用技巧之内部变量

将响应值存储在 ROBOT Framework 中的变量中

pycharm下robot framework环境搭建,基于python版本3.6

Robot Framework 资源和变量文件