我试图将这个字符串列表用作单个关键字参数,但在运行时出现错误。
[ ERROR ] Error in file Variables.robot Invalid variable name '${LIST_TEST_ATTRIBUTES}
我可以按住 ctrl 并单击 ${LIST_TEST_ATTRIBUTES},它确实在 Variables.robot 文件中找到了变量
Variables.robot
*** Variables ***
${LIST_TEST_ATTRIBUTES} = ["${access_engine_ip}","${analytics_engine_ip}","${AUT_Version}","${browser_type}","${ESX_server_ipaddress}","${device_type_x450_g2}"]
Test.robot
*** Settings ***
Resource Variables.robot
*** Test Cases ***
Initialize Test
initialize test variables ${LIST_TEST_ATTRIBUTES}
最佳答案
这不是在变量部分创建列表的语法;这是正确的 - 您在其名称前加上 @
,而不是 $
,并通过至少两个空格分隔的所有成员:
*** Variables ***
@{LIST_TEST_ATTRIBUTES} ${access_engine_ip} ${analytics_engine_ip} ${AUT_Version} ${browser_type} ${ESX_server_ipaddress} ${device_type_x450_g2}
现在在您的示例中,所有成员都是对其他变量的引用。 LIST_TEST_ATTRIBUTES
在创建套件时实例化 - 这意味着所有这些成员此时必须已经具有值 - 例如在导入的资源文件中定义,或在此文件中列表变量之前的某处定义。
如果不是这种情况 - 它们的值仍未设置,但稍后会发生这种情况,您可以做一些不同的事情 - 使用创建列表变量的关键字,使用套件范围设置它;然后在需要的时候调用关键字:
*** Variables ***
# the value of this variable is set through the "Set The Value Of The List Var" keyword
${LIST_TEST_ATTRIBUTES} ${None} # this "declaration" is not needed, but it's a good practice - thus you show to the other users there is this suite-level var
*** Keywords ***
Set The Value Of The List Var
${LIST_TEST_ATTRIBUTES}= Create List ${access_engine_ip} ${analytics_engine_ip} ${AUT_Version} ${browser_type} ${ESX_server_ipaddress} ${device_type_x450_g2}
Set Suite Variable ${LIST_TEST_ATTRIBUTES}
当其成员的值已设置时,您将调用关键字 Set The Value Of The List Var
,并且列表变量将在该调用后的所有情况下可用。
关于python - Robot Framework - 将列表变量作为关键字参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51902236/