机器人框架-如何对不同的关键字使用全局变量

时间:2018-11-08 11:27:24

标签: variables robotframework

我遇到了这个问题,需要从不同的关键字访问变量

我尝试使用set global variable关键字。

***Keywords***

Random Name
    ${Name}=  Full Name
    set global variable  ${Name}

Keyword Name
    Random Name
    Log  ${Name}

Keyword Name2
    Random Name
    Log  ${Name}


*** Test Cases ***
Run Keywords
    Keyword Name
    Keyword Name2

全名关键字

Import names

def Full_Name(self):

    return (names.get_first_name())

输出

enter image description here

因此在关键字名称中,我得到的值为John,但在关键字名称2中,值为Clair。我需要将所有关键字的值都保留为John

当我尝试使用变量而不将关键字传递给关键字时,我无法全部访问。

我也尝试使用set suite variable,但结果相同。

注意:全名关键字是一个用于获取随机名称的自定义库。这只是一个示例代码

2 个答案:

答案 0 :(得分:0)

我找到了解决方案。我没有在测试用例中调用随机名称关键字,也没有在“变量”部分中创建一个空变量

 *** Variables ***
${Name}

***Keywords***

Random Name
    ${Name}=  Full Name
    set global variable  ${Name}

Keyword Name
    Log  ${Name}

Keyword Name2
    Log  ${Name}


*** Test Cases ***
Run Keywords
    Random Name
    Keyword Name
    Keyword Name2

现在我正在获得所需的输出

答案 1 :(得分:0)

我知道您已经在两年前开始使用它,但是如果有人在这里绊倒了,我想提出一个替代方案:

*** Keywords ***

Setup: Run Keywords
    Set Test Variable    ${Name}    Full Name

Keyword Name
    Log    ${Name}

Keyword Name2
    Log    ${Name}


*** Test Cases ***

Run Keywords
    [Setup]    Setup: Run Keywords
    Keyword Name
    Keyword Name2
    

使用设置,可以更好地使用适合其用法的变量。除非我有多个相互关联的测试套件,而且它们具有类似的套件设置,否则我几乎不需要使用全局变量,因此我创建了一个init.robot以使用全局变量来设置它们。