python - Robot Framework - 将列表变量作为关键字参数传递

标签 python robotframework

我试图将这个字符串列表用作单个关键字参数,但在运行时出现错误。

[ 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/

相关文章:

python - 有条件填充数据框 pandas

python - 如何通过 Robot Framework 或 python 脚本将 csv(逗号分隔)或 xlsx(excel)文件转换为 psv(管道分隔)文件

python - 在 Robot Framework 中用 Python 登录日志

python - Linux 中的机器人框架

python - (centos6.6) 更新python2.7.3之前,是python 2.6.6。运行 pybot --version 时出现错误

robotframework - 如何迭代文本文件中的列表列表 - Robot Framework

python - 模型的特征数量必须与输入匹配?

Python:将 ascii 转换为 unicode 时遇到困难

python - flask : How to do server side cleanup on session expiration?

python - 如何在 Bokeh 中完成 `set_xlim` 或 `set_ylim` ?