我需要从var1
创建一个传递给变量var2
和env.py
的值列表,并在Generic Suite Setup
关键字中使用它们,而不会更改{{1}的参数}}
Setup.robot
Generic Suite Setup
env.py
*** Keywords ***
Generic Suite Setup
[Arguments] &{options}
${keys}= Get Dictionary Keys ${options}
${new1}= Convert To List ${keys}
Log ${new1}
test.robot
var1='xyz'
var2='pqr'
答案 0 :(得分:2)
希望这可以解决您的问题
test.robot
*** Settings ***
Resource Setup.robot
Suite Setup Generic Suite Setup var1=abc var2=abc
*** Test Cases ***
Login
Setup.robot
*** Settings ***
Library Collections
*** Keywords ***
Generic Suite Setup
[Arguments] &{options}
${keys}= Get Dictionary Keys ${options}
${Values}= Get Dictionary Values ${options}
${new1}= Convert To List ${keys}
${new2}= Convert To List ${Values}
${list4}= Create List ${var1} ${var2}
Log ${new1}
Log to console ${new2}
Log to console ${list4}
:FOR ${key} IN @{new1}
\ Set suite Variable ${${key}} ${${key}}
env.py
var1='xyz'
var2='pqr'
输出
list4= ['xyz','pqr']
您现在有两个单独的列表,一个来自通用套件设置参数值,另一个来自env44.py var1,var2值
答案 1 :(得分:0)
这个问题包含在一个问题中。第一个是声明了未知数量的全局变量。全局变量由于其性质而应该很少并且大部分是静态的。这使得它们可以预测,并且应该知道它们的存在。
如果您要从外部源导入变量,我建议不要创建单独的全局变量,而是使用YAML创建嵌套字典/列表/变量。在这个Stack Overflow answer中,我提出了一个单变量导入的例子,然后将其拆分为单独的全局变量。这应该可以让您控制导入的内容。
答案 2 :(得分:0)
现在${userlist}
记录为['xyz', 'pqr']
,并在setup.robot
<强> Setup.robot 强>
*** Settings ***
Library Collections
*** Keywords ***
Generic Suite Setup
${keys}= Get Dictionary Keys ${options}
${new1}= Convert To List ${keys}
@{userlist}= Create list
:FOR ${key} IN @{new1}
\ Set suite Variable ${${key}} ${${key}}
\ Append To List ${userlist} ${${key}}
Log ${userlist}