testng / Jenkins - 包含名称,参数化

Posted

技术标签:

【中文标题】testng / Jenkins - 包含名称,参数化【英文标题】:testng / Jenkins - include name, parameterized 【发布时间】:2019-08-01 12:28:45 【问题描述】:

我是编程新手。我对 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="test.testuser9@test.ch" />
<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" />

开始指定的测试。

我该怎么做?我想告诉 Jenkins 要运行哪个测试,例如“@MTC-016432”

让-皮埃尔干杯

【问题讨论】:

【参考方案1】:

您可以通过命令行传递它,而不是在配置文件中设置组,如下所示:

-Dgroups=@group1,@group2

当您使用 QAF GherkinScenarioFactory 时,您还可以使用元数据过滤器功能,您可以在其中传递 -Dinclude=&lt;filter&gt;-Dinclude=&lt;filter&gt; 参数。要使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 开始,您可以使用 BDDTestFactory2 代替 GherkinScenarioFactory 并利用 BDD2

【讨论】:

以上是关于testng / Jenkins - 包含名称,参数化的主要内容,如果未能解决你的问题,请参考以下文章

接口测试(java+testng+ant+jenkins)第一篇 java

Jenkins传参修改jmeter的报告名称和详细报告地址

接口测试(java+testng+ant+jenkins)第二篇testng

将 TestNG 屏幕截图输出到 Jenkins

接口测试(java+testng+ant+jenkins)第六篇testng 二

Jenkins + TestNG 实现自助式自动化测试平台