Robotframework 如何使用;“获取库实例”;机器人框架中的全局变量

Robotframework 如何使用;“获取库实例”;机器人框架中的全局变量,robotframework,Robotframework,我必须定义两个变量${p1}和${p2},它们的范围应该是全局的,这意味着它们可以在单个测试套件中的各种测试用例中使用 当我在测试用例中执行以下活动时,它工作正常: ${p1}= GET LIBRARY INSTANCE P1 ${p2}= GET LIBRARY INSTANCE P2 但当我将p1和p2指定为全局时,我无法获得所需的结果: set Suite Variable ${p1}= GET LIBRARY INSTANCE P1 set Suite Varia

我必须定义两个变量
${p1}
${p2
},它们的范围应该是全局的,这意味着它们可以在单个测试套件中的各种测试用例中使用

当我在测试用例中执行以下活动时,它工作正常:

${p1}= GET LIBRARY INSTANCE    P1

${p2}= GET LIBRARY INSTANCE    P2
但当我将p1和p2指定为全局时,我无法获得所需的结果:

set Suite Variable ${p1}= GET LIBRARY INSTANCE    P1

set Suite Variable ${p2}= GET LIBRARY INSTANCE    P2

我不想在所有测试用例中编写
${p1}=GET LIBRARY INSTANCE p1
行,我应该怎么做?任何帮助都将不胜感激。

您应该定义一个
套件设置
,您可以在其中为整个套件设置变量。您应该首先获取库实例,然后简单地将这些变量设置为套件变量,如中所示

在您的情况下,它应该像这样:

***设置***
套件设置全局变量
***关键词***
设置全局变量
${p1}=获取库实例p1
${p2}=获取库实例p2
设置套件变量${p1}
设置套件变量${p2}
***测试用例***
测试案例a
日志${p1}
日志${p2}
测试用例b
日志${p1}
日志${p2}

请注意,这些变量只能在此套件文件中访问。

您使用的语法无效。
Set suite variable
的文档中说,它将变量名作为第一个参数,将一个或多个值(不是关键字)作为后续参数。变量名是字符串
${p1}=GET LIBRARY INSTANCE
,值是字符串
p1

正确的形式如下所示。由于
${p1}
在本地存在,因此在调用
set suite variable
时不需要指定它

${p1}=  GET LIBRARY INSTANCE    P1
set Suite Variable  ${p1}  

什么是“不能得到期望的结果”呢?你得到了什么样的结果,它与你想要的有什么不同?我之前试过这个东西,但在这种情况下不起作用。上面提供的解决方案是适合我的正确实现。谢谢你的帮助@Bryan
${p1}=  GET LIBRARY INSTANCE    P1
set Suite Variable  ${p1}