我必须定义两个变量${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
行,该怎么办?任何帮助将不胜感激。
答案 0 :(得分:4)
您应该定义一个Suite Setup
,您可以在其中设置整个套件的变量。您应该首先获取您的库实例,然后将这些变量设置为套件变量,如example所示。
${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}
请注意,这些变量只能在此套件文件中访问。
答案 1 :(得分:2)
您使用的语法无效。 Set suite variable
的文档说,它使用变量名作为第一个参数,并使用一个或多个值(不是关键字)作为后继参数。您将字符串${p1}= GET LIBRARY INSTANCE
作为变量名,并将字符串P1
作为值。
正确的格式如下。由于${p1}
在本地存在,因此在调用set suite variable
时无需指定它。
${p1}= GET LIBRARY INSTANCE P1
set Suite Variable ${p1}