Robotframework 是否可以重写robot中的列表变量?

Robotframework 是否可以重写robot中的列表变量?,robotframework,Robotframework,在变量下,我得到了列表我的列表: 现在我想知道,当从命令行运行robot测试时,是否可以用另一个列表覆盖变量my_list。更新: 为了问题答案的完整性,您可以在下面找到更新 Robot框架不支持对列表和字典等类型使用命令行变量进行变量重写。但如果需要一份清单 可以使用--variablefile命令行开关从命令行重写***变量***部分中定义的变量。您可以在下面找到一个示例: python_variables.py LIST__my_real_list_variable = 3, 2 my_r

在变量下,我得到了列表我的列表:


现在我想知道,当从命令行运行robot测试时,是否可以用另一个列表覆盖变量my_list。

更新:

为了问题答案的完整性,您可以在下面找到更新

Robot框架不支持对列表和字典等类型使用命令行变量进行变量重写。但如果需要一份清单 可以使用--variablefile命令行开关从命令行重写***变量***部分中定义的变量。您可以在下面找到一个示例:

python_variables.py

LIST__my_real_list_variable = 3, 2
my_real_list_variable2 = [5, 0]
yourRobotTestSuite.robot

*** Variables ***
${my_list}    ['1', '2', '3']
@{my_real_list_variable}    1    2    3 
@{my_real_list_variable2}    1    2    3     

*** Test Cases ***
command line variable overrides
    Log    ${my_list}    
    Log Many    @{my_real_list_variable}
    Should Be True    "${my_list}"=="['8','4']"    
    Should Be True    ${my_real_list_variable[0]}==3    
    Should Be True    ${my_real_list_variable2[0]}==5
    

robot --variable my_list:['8','4'] --variablefile python_variables.py yourRobotTestSuite.robot
资料来源:

--变量示例:值

--变量主机:localhost:7272--变量用户:robot

从命令行设置的变量全局可用于所有 执行测试数据文件,并且它们还覆盖可能的变量 在变量部分使用相同的名称

总结一下我上面写的所有内容:如果您想覆盖***变量***部分中定义的变量,定义如下

*** Variables ***
${my_list}    ['1', '2', '3']
${my_list}的类型是string而不是list。但是,只要测试中有一点逻辑或关键字,您就可以

${my_list}    Evaluate    ${my_list}

通过这种方式,${my_list}现在是一个真实的列表,例如可以在循环中迭代。另一种覆盖列表的方法是使用--variablefile,但根据我的观点,这是实现这种“真正的列表”覆盖的更难的方法,并且在执行测试之前需要先决条件来创建或覆盖python_variables.py的内容。

显示您的尝试和错误。顺便说一句,您定义的变量不是列表变量,由于方括号的缘故,这是一个看起来像字符串的字符串。要将其定义为列表,请更改为
@{my_list}1 2 3
(删除注释中的空格,您需要在每个值之间至少添加2)。我认为CLI不支持传递列表变量,只支持传递字符串。这将
my_list
设置为9字节字符串,这可能不是OP想要的。
${my_list}    Evaluate    ${my_list}