【问题标题】:How to declare optional global variable in robot script depending upon command line arguments in robot framework如何根据机器人框架中的命令行参数在机器人脚本中声明可选的全局变量
【发布时间】:2020-07-28 04:47:37
【问题描述】:

我有一个场景,我需要根据命令行参数在我的机器人脚本中设置全局变量。在某些情况下,我可以从命令行传递 2 个参数和其他 3 个参数。

sample.robot

Set Global Variable  ${arg1}  ${ARG1}
Set Global Variable  ${arg2}  ${ARG2}
Set Global Variable  ${arg3}  ${ARG3}

场景一

命令行参数传递

robot --variable ARG1:arg1 --variable ARG2:arg2 sample.robot

在代码执行期间,脚本抛出“未找到变量 '${ARG3}'”的错误。

场景二

命令行参数传递

robot --variable ARG1:arg1 --variable ARG2:arg2 --variable ARG3:arg3 sample.robot

在代码执行期间,一切正常。

要求

我需要的是,即使我不传递一些命令行参数,它也不应该抛出任何错误。也许某种方式可以将某些全局变量声明为可选变量,而将其他变量声明为强制变量。使用“argparse”模块可以在python中实现类似的功能。

【问题讨论】:

    标签: python robotframework


    【解决方案1】:
    1. 要在机器人框架中设置全局变量,你可以使用机器人框架中的Set Global Variable内置关键字-你可以看到参考here

    2. 要了解更多关于命令行选项的信息,你可以通过这个link

    3. 要读取变量 bu,如果没有提供命令行参数,您希望设置一个默认值

    ${value} = Get Variable Value &{var} default value #Set your default value here

    现在使用列表或字典变量来动态保存不同数量的参数。因此,如果没有为该套件提供命令行参数。

    【讨论】:

      【解决方案2】:

      在我看来,您想在给定特定测试场景的情况下插入一组特定数据。如果是这种情况,我建议您查看 Robot Framework Variable Files。在这些外部文件中,您可以制作所有类型的变量。它们可以很容易地被与您的测试场景相匹配的替换。

      如果这一切都必须在命令行上进行,那么将命令行上的单个文件名/路径与 BuiltIn 关键字组合起来:Import Variables 应该可以为您提供同样的灵活性。

      【讨论】:

        猜你喜欢
        • 2018-05-11
        • 2021-09-01
        • 2021-11-16
        • 2017-09-13
        • 2018-09-23
        • 1970-01-01
        • 2016-08-09
        • 2021-01-05
        • 1970-01-01
        相关资源
        最近更新 更多