我在登录模块中有大约10个测试用例。我必须在暂存和产品环境上执行测试,但是在产品环境上,需要排除一些特定的测试用例,这些用例需要在应用程序中插入一些虚拟数据。为此,我在方案中添加了一个组名PRO_EXCLUDE
。
请参考下面的示例,其中包含组合的组名,我在执行时需要排除这些组名。
SCENARIO: verify login landing page
META-DATA: {"TestCase_ID":"BP_L&R_001","description":"verify login landing page ","groups":["REGRESSION","PRO_EXCLUDE"]}
Given user is on homepage
When clicks on login link
Then verify page title text with title '${loginpage.title}'
END
其余方法只有一组,即
REGRESSION
我已经按照以下方式配置了测试
<test name="Login" enabled="true">
<method-selectors>
<method-selector>
<script language="beanshell"><![CDATA[ return groups.containsKey("REGRESSION") && groups.containsKey("PRO_EXCLUDE");]]></script>
</method-selector>
</method-selectors>
<parameter name="scenario.file.loc" value="scenarios/login.bdd" />
<classes>
<class name="com.qmetry.qaf.automation.step.client.text.BDDTestFactory"></class>
</classes>
</test>
这将执行同时具有
REGRESSION
和PRO_EXCLUDE
组的方案。我不想执行此操作,但只使用REGRESSION
组执行其余方案。 最佳答案
更好的方法是利用Qaf的元数据功能。据此,与其添加多个组,不如根据性质对其进行分类。例如:
范围-烟,回归
模块-FunctionlModule1,FM2
渠道-网络,API,移动
等等...
您需要为您的AUT定义并在方案中将其设置为元数据。
SCENARIO: verify login landing page
META-DATA: {"TestCase_ID":"BP_L&R_001","description":"verify login landing page ","scope":"REGRESSION","feature":"PRO_EXCLUDE"]}
Given user is on homepage
When clicks on login link
Then verify page title text with title '${loginpage.title}'
END
如果要在Java中编写测试用例,则可以在测试方法上使用
@MetaData
来设置测试用例元数据。您可以通过如下设置适当的include
和exclude
属性值来使用元数据过滤器:include= {'scope': ['REGRESSION'], 'feature': ['PRO_EXCLUDE']}
它将包括测试案例/场景,其元数据
scope
的值为REGRESSION
并且feature
的值为PRO_EXCLUDE
。有关更多用法示例,请参考documentation。注意:要正常使用此功能,必须从qaf
com.qmetry.qaf.automation.testng.pro.QAFMethodSelector
的xml配置文件或ant testng目标或maven pom中添加方法选择器。 qaf也将组视为元数据之一。