我必须定义两个变量 ${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
行,我该怎么办?任何帮助将不胜感激。
您应该定义一个Suite Setup
,可以在其中为整个套件设置变量。您应该先获取库实例,然后简单地将这些变量设置为套件变量,如示例所示。
${ID} = Get ID Set Suite Variable ${ID}
在您的情况下,它应该看起来像是这样:
*** Settings ***
Suite Setup Setup Global Variables
*** Keywords ***
Setup Global Variables
${p1}= GET LIBRARY INSTANCE P1
${p2}= GET LIBRARY INSTANCE P2
Set Suite Variable ${p1}
Set Suite Variable ${p2}
*** Test Cases ***
Test CaseA
Log ${p1}
Log ${p2}
Test CaseB
Log ${p1}
Log ${p2}
请注意,这些变量仅在此套件文件中才能访问。
您正在使用无效的语法。Set suite variable
的文档表示,它将变量名作为第一个参数,而一个或多个值(而不是关键字)作为后续参数。您将字符串${p1}= GET LIBRARY INSTANCE
作为变量名称,而字符串P1
为值。
正确的形式就像以下内容。因为${p1}
在本地存在,因此在调用set suite variable
时不需要指定它。
${p1}= GET LIBRARY INSTANCE P1
set Suite Variable ${p1}