Robotframework 机器人框架中用于在for循环中存储不同值的动态变量
我正在尝试以下步骤,但它抛出一个错误:“${dut1\u lmepid\u${I}}”未找到关键字 如果我使用类似${temp\u var}的任何东西来代替${dut1\u lmepid\u${I},那么效果很好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-
: 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变量。范围不需要是全局的,它可以是套件或测试级别。