Robotframework 机器人框架中用于在for循环中存储不同值的动态变量

Robotframework 机器人框架中用于在for循环中存储不同值的动态变量,robotframework,Robotframework,我正在尝试以下步骤,但它抛出一个错误:“${dut1\u lmepid\u${I}}”未找到关键字 如果我使用类似${temp\u var}的任何东西来代替${dut1\u lmepid\u${I},那么效果很好 : For ${i} IN RANGE 1 2 \ ${var} = Set Variable dut1_lmepid_${i} \ ${dut1_lmepid_${i}}= Run Keyword get-local-ac-

我正在尝试以下步骤,但它抛出一个错误:“${dut1\u lmepid\u${I}}”未找到关键字

如果我使用类似${temp\u var}的任何东西来代替${dut1\u lmepid\u${I},那么效果很好

: For    ${i}    IN RANGE    1    2
\    ${var} =    Set Variable    dut1_lmepid_${i}
\    ${dut1_lmepid_${i}}=    Run Keyword    get-local-ac-id    me${i}

这在机器人上目前是不可能的。您可以使用“变量中的变量”解析变量值(请参阅),但不能解析/设置变量本身的名称。

这在Robot中目前是不可能的。您可以使用“变量中的变量”解析变量值(请参阅),但不能解析/设置变量本身的名称。

可以使用关键字
设置全局变量来执行第二步:

*** Test Cases ***
Test Item
    :For    ${i}    IN RANGE    1    5
    \    ${value} =    Run Keyword    get-local-ac-id    me ${i}
    \     Set Global Variable     ${dut1_lmepid_${i}}    ${value}
    No Operation

*** Keywords ***
get-local-ac-id
    [Arguments]    ${arg}
    [Return]    value ${arg}

可以使用关键字
设置全局变量执行第二步:

*** Test Cases ***
Test Item
    :For    ${i}    IN RANGE    1    5
    \    ${value} =    Run Keyword    get-local-ac-id    me ${i}
    \     Set Global Variable     ${dut1_lmepid_${i}}    ${value}
    No Operation

*** Keywords ***
get-local-ac-id
    [Arguments]    ${arg}
    [Return]    value ${arg}

请在问题中包含实际错误。为什么需要动态创建新变量名?使用
{temp\u var}
有什么问题?如果需要保存所有变量,是否考虑过使用字典或列表而不是一堆生成的变量?是的,我使用列表来存储值,而不是创建动态变量。请在问题中包含实际错误。为什么需要动态创建新变量名?使用
{temp\u var}
有什么问题?如果您需要保存所有变量,您是否考虑过使用字典或列表而不是一堆生成的变量?是的,我使用列表来存储值,而不是创建动态变量。我想您也可以使用Set Suite变量和Set Test变量。范围不需要是全局的,它可以是套件或测试级别。我想你也可以用同样的方法使用Set Suite变量和Set Test变量。范围不需要是全局的,它可以是套件或测试级别。