Robot Framework中的静态变量

时间:2019-01-09 11:33:35

标签: python static robotframework

机器人框架中是否存在诸如静态类型的变量之类的东西?如果可以,我该如何调用它?还是通过python文件做到这一点的解决方案?

我要解决的问题是,我希望一次设置一个变量,并使其记住设置的值。不幸的是,该变量位于资源文件中(与我的测试套件文件分开)。

2 个答案:

答案 0 :(得分:1)

是的,您可以在机器人框架中设置静态变量。您的资源文件中应该包含类似的内容。

*** Settings ***
...
*** Variables ***
${MyVariable}    MyValue

*** Keywords ***
...

您的测试应该看起来像这样

*** Settings ***  

Resource    (Path to resource file)

*** Test Cases ***
My Test Case
[Documentation]    This is documentation
My keyword    MyVariable

答案 1 :(得分:1)

给出以下套件结构:

/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的答案就是您要寻找的东西。