【问题标题】:Test Template with Robot Framework cannot use variables带有机器人框架的测试模板不能使用变量
【发布时间】:2020-01-22 00:56:12
【问题描述】:

我在使用robotframework 模板时遇到了一些问题,如何将变量传递给模板? 这是我的代码:

*** Keywords ***
re-random-value
    ${random int} =    Evaluate    random.randint(1, 5)
    [Return]    ${random-num}


*** Test Cases *** test1
    [Template]    test template
    re-random-value   # random-num is return value from keywords re-random-value


*** Keywords ***
   test template
    [Arguments]    ${random-num}
    log    ${random-num}

当我运行测试用例test1时,结果是re-random-value,而不是我预期的关键字re-random-value返回的值的数量

【问题讨论】:

    标签: robotframework


    【解决方案1】:

    Robot Framework Test Templates 的文档说明如下:

    ... 带有模板的测试用例仅包含 模板关键字。

    在测试模板的上下文中,参数永远不能是关键字,示例中的方法不会按原样工作。

    假设关键字可能在每行/测试用例中发生变化,可以构造一个中间关键字,将关键字的名称作为参数并执行它。在您的示例的以下更新版本中,这就是所做的。使用 FOR 循环生成多个值。

    *** Test Cases *** 
    test1
        [Template]    test template
            FOR    ${index}    IN RANGE    1    5    
                re-random-value   # random-num is return value from keywords re-random-value
            END
    
    *** Keywords ***
    test template
        [Arguments]    ${keyword}
        ${value}    Run Keyword    ${keyword}
        Log To Console    ${value}
    
    re-random-value
        ${random int} =    Evaluate    random.randint(1, 5)    modules=random
        [Return]    ${random int}
    

    结果(记住值的随机性):

    ==============================================================================
    test1                                                                 1
    3
    2
    3
    | PASS |
    ------------------------------------------------------------------------------
    

    【讨论】:

    • “鉴于参数永远不能是关键字” - 这是不正确的。关键字可以作为参数传递给其他关键字。例如,您将关键字作为参数传递给 Run keyword 关键字。
    • 我认为你仍然不正确。我可以创建一个接受关键字作为参数的测试模板。事实上,你的例子不正是表明了这一点吗?您有一个名为 ${keyword} 的参数。
    • 该示例提供了一个值,然后在模板关键字中将其解释为值参数。我对这个问题的解释是被调用的关键字返回一个由模板测试用例直接调用的值。技术上不同,但功能上相似。
    猜你喜欢
    • 2018-05-01
    • 2021-04-13
    • 2022-12-18
    • 2016-05-15
    • 2013-01-23
    • 2016-05-03
    • 1970-01-01
    • 2020-09-23
    • 2020-01-22
    相关资源
    最近更新 更多