【问题标题】:Can you declare variable at runtime with Robot Framework你可以在运行时使用机器人框架声明变量吗
【发布时间】:2017-09-13 06:43:20
【问题描述】:

我目前有一系列功能性测试,我希望能够在运行时声明 2 个选项中的 1 个。测试目前使用 XVFB 并无头运行。

当前操作浏览器的代码是:

Start Virtual Display and enter the URL
    [Documentation]  Test creates virtual display using XVFB
    [Arguments]    ${URL}
    start virtual display  1440  900
    Open Browser  ${URL}
    set window size  1440  900
    sleep  ${delay}

如果我注释掉start virtual display 1440 900这一步,测试用例会自动调用原生浏览器执行测试步骤。

我希望有一种“简单的方法”来注释或取消注释 start virtual display 测试步骤 - 也许通过将其声明为变量?

【问题讨论】:

    标签: robotframework


    【解决方案1】:

    您可以从命令行设置变量:http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#setting-variables-in-command-line

    还不够吗?

    根据您的代码示例进行编辑:

    Start Virtual Display and enter the URL
        [Documentation]  Test creates virtual display using XVFB
        [Arguments]    ${URL}
        Run Keyword If    '${vd}' == 'TRUE'    Start Virtual Display    1440    900
        Open Browser    ${URL}
        Set Window Size    1440    900
        Sleep    ${delay}
    

    然后使用 --variable vd:TRUE 调用您的测试

    【讨论】:

    • 对不起 - 我没有很好地描述我的实际场景 - 将修改我的原始问题以澄清。
    • 答案扩展。
    • 谢谢扬!这正是我想要做的,但是现在唯一剩下的问题是现在通过在 Jenkins 中运行的 bash 脚本传递该变量。
    • 抱歉,我对 Jenkins 一点也不熟悉。我可以想象你会为这两个选项设置两个计划(或一个具有两种配置的计划?)。
    【解决方案2】:

    在您更新的问题中,在我看来,您正在寻找 Run Keyword If 功能,该功能允许您在启动 RF 时使用命令行上指定的变量的值来确定脚本的执行。更多关于 Run 关键字 If 可以找到 here

    【讨论】:

      【解决方案3】:

      您可以创建两个测试用例,第一个没有start virtual display 1440 900。 以及您设置为使用的其他测试 start virtual display 1440 900 关键字

      【讨论】:

        猜你喜欢
        • 2018-03-06
        • 2023-03-26
        • 2015-08-11
        • 2021-09-01
        • 1970-01-01
        • 2012-04-01
        • 2014-01-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多