如何使用变量file-Robot fram传递的额外参数

2024-09-29 06:27:28 发布

您现在位置:Python中文网/ 问答频道 /正文

在Robot Framework用户指南中有一节描述了如何传递变量文件以及一些可能的变量(如果需要)。
示例:
pybot --variablefile taking_arguments.py:arg1:arg2

我的问题是,我可以在taking_arguments.py文件中使用这些可能的变量arg1和arg2吗?如果可以,那么如何使用?

现在我有这个:

pybot --variablefile taking_arguments.py:arg1:arg2

获取参数.py内容:

IP_PREFIX = arg1

但结果是

NameError: name 'arg1' is not defined


Tags: 文件用户py示例内容参数指南robot
2条回答

使用--variablefile filename.py:arg1:arg2语法在参数文件中使用变量的唯一方法是让变量文件实现函数get_variables。此函数将传递您在命令行上指定的参数,并且必须返回变量名和值的字典。

例如,考虑以下名为“variables.py”的变量文件:

def get_variables(arg1, arg2):
    variables = {"argument 1": arg1,
                 "argument 2": arg2,
                }
    return variables

此文件创建两个robot变量,名为${argument 1}${argument 2}。这些变量的值将是传入的参数的值。您可以这样使用此变量文件:

pybot --variablefile variables.py:one:two ...

在本例中,字符串“one”和“two”将作为两个参数传递给get_variables。然后,这些变量将与这两个变量相关联,从而将${argument 1}设置为one,将${argument 2}设置为two

我没有尝试过将初始值传递给变量文件中的变量。。。所以我不确定这是否有可能。。。

我可以提供另一种选择。。。

您可以使用pybot命令手动定义一些变量及其值。。。

pybot -variablefile taking_arguments.py -v IP_PREFIX:arg1 -v Varibale:Value 

如果我没有弄错的话,这些手动启动的变量比变量文件中的变量具有更高的优先级。因此,即使它们是在变量文件中启动的,在testcase中也将使用与-v选项一起传递的值。

希望这能帮助你!

相关问题 更多 >