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}