Python 如何根据robot框架中的命令行参数在robot脚本中声明可选全局变量

Python 如何根据robot框架中的命令行参数在robot脚本中声明可选全局变量,python,robotframework,Python,Robotframework,我有一个场景,需要根据命令行参数在robot脚本中设置全局变量。在某些情况下,我可以从命令行传递2个参数,在其他3个参数 示例机器人 Set Global Variable ${arg1} ${ARG1} Set Global Variable ${arg2} ${ARG2} Set Global Variable ${arg3} ${ARG3} 情景一 已传递命令行参数 robot --variable ARG1:arg1 --variable ARG2:arg2 sample.

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

示例机器人

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

已传递命令行参数

robot --variable ARG1:arg1 --variable ARG2:arg2 sample.robot
robot --variable ARG1:arg1 --variable ARG2:arg2 --variable ARG3:arg3 sample.robot
在代码执行期间,脚本抛出一个错误“找不到变量“${ARG3}”

情景二

已传递命令行参数

robot --variable ARG1:arg1 --variable ARG2:arg2 sample.robot
robot --variable ARG1:arg1 --variable ARG2:arg2 --variable ARG3:arg3 sample.robot
在代码执行期间,一切正常

要求

Set Global Variable  ${arg1}  ${ARG1}
Set Global Variable  ${arg2}  ${ARG2}
Set Global Variable  ${arg3}  ${ARG3}
这里我需要的是,即使我没有传递一些命令行参数,它也不应该抛出任何错误。也许可以通过某种方式将某些全局变量声明为可选变量,而将其他变量声明为强制变量。使用“argparse”模块可以在python中实现类似的功能

  • 要在robot framework中设置全局变量,可以使用robot framework中的
    set global Variable
    builtin关键字-您可以查看参考

  • 要了解有关命令行选项的更多信息,可以浏览以下内容

  • 要读取变量bu,如果没有提供命令行参数,则需要设置一个默认值

  • ${value}=获取变量值&{var}默认值#在此设置默认值


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

    我觉得您需要在特定测试场景中插入特定的数据集。如果是这种情况,我建议研究机器人框架。在这些外部文件中,您可以创建所有类型的变量。它们可以很容易地被与您的测试场景相匹配的替换

    如果这一切都必须在命令行上发生,那么将命令行上的单个文件名/路径与内置关键字组合在一起:应该允许您具有同样的灵活性