我是编程新手。我有一个关于testng.xml和Jenkins的问题。我使用以下参数在Jenkins中运行参数化构建:
install
-Dreportium-job-name=${JOB_NAME}
-Dreportium-job-number=${BUILD_NUMBER}
-Dreportium-tags=${myTag}
-DtestngXmlDir=src/main/resources/jenkins/test/scenarios/JPMTEST
-DtestngXmlFile=JPM1-testng_oekktest.xml
-Dtests=Galaxy_S9
我的testng.xml
<test name="Galaxy_S9" enabled="true">
<parameter name="driver.capabilities.scriptName" value="Galaxy_S9"></parameter>
<parameter name="driver.capabilities.deviceName" value="1C5B539704037ECE"></parameter>
<parameter name="env.resources" value="src/main/resources/common;src/main/resources/android;src/main/resources/android/test" />
<parameter name="username" value="[email protected]" />
<parameter name="password" value="Abcd1234" />
<groups>
<run>
<include name="@MTC-016432" />
</run>
</groups>
<classes>
<class name="com.qmetry.qaf.automation.step.client.gherkin.GherkinScenarioFactory" />
</classes>
</test>
现在,如果我启动Jenkins构建,测试仅针对“Galaxy_S9”启动,那就没问题。所有其他手机无法启动。
但现在我搜索一个解决方案,给jenkis一个额外的参数
<include name="@MTC-016432" />
开始指定的测试。
我怎样才能做到这一点?我想告诉詹金斯哪个测试运行,例如“@ MTC-016432”
让 - 皮埃尔欢呼
您可以通过命令行传递它,而不是在配置文件中设置组,如下所示:
-Dgroups=@group1,@group2
当您使用QAF GherkinScenarioFactory
时,您还可以使用元数据过滤器功能,您可以传递-Dinclude=<filter>
和-Dinclude=<filter>
参数。要使meta-data filter工作,您需要在配置文件中添加QAFMethodSelector
,如下所示:
<method-selectors>
<method-selector>
<selector-class name="com.qmetry.qaf.automation.testng.pro.QAFMethodSelector" />
</method-selector>
</method-selectors>
使用元数据过滤器,您可以传递如下参数
-Dinclude={'groups':['@grp1']}
从qaf版本2.1.14,而不是GherkinScenarioFactory
你可以使用BDDTestFactory2
并利用BDD2