1

机器人框架中是否有静态类型的变量?如果是这样,我该如何调用它?还是通过python文件来解决?

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

4

2 回答 2

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

于 2019-01-09T13:12:28.790 回答
1

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

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

*** Keywords ***
...

你的测试应该是这样的

*** Settings ***  

Resource    (Path to resource file)

*** Test Cases ***
My Test Case
[Documentation]    This is documentation
My keyword    MyVariable
于 2019-01-09T12:28:48.297 回答