在运行时从Jenkins参数构建到testng.xml的数据

问题描述 投票:0回答:2
我希望能够将数据输入暴露给非技术人员,并建议通过使用参数化的Jenkins作业来实现此目的。

所有测试数据都是字符串。

我可以看到如何在jenkins中创建一个参数化的项目,并可以在项目中创建字符串参数。 我不清楚在运行时传递数据的最佳方法。
我知道可以使用一个蚂蚁脚本,但是我已经使用了Maven,并且不想引入另一种冲突的技术。

我已经听说这可以使用testng.xml中的beanshell脚本完成,但是从

-Testngdocs

上的示例中,我仍然不清楚如何最好地实现它。

在这里您可以解决这个问题。

添加您要通过jenkins传递的所有参数进入套件XML文件并为其定义一些默认值。

在詹金斯(Jenkins)作业中,您现在创建参数,但请确保您的作业配置中的参数名称与您在Suite XML文件中添加的名称匹配。 然后,您使用testng侦听器,如下所示,然后使用其中一种详细介绍的方法将其连接到我的博客文章中。

之后,您应该能够轻松地完成所需的工作。如果您的参数定义为<test>

级别,则可以增强我在下面显示的侦听器,并在实现
java maven jenkins automation testng
2个回答
4
投票
侦听器后添加类似的代码。 listener

name

的参数。

样本测试类


package org.rationale.emotions; import org.testng.annotations.Parameters; import org.testng.annotations.Test; public class SampleTest { @Test @Parameters ("name") public void testMethod(String name) { System.err.println("Name that was passed in via Jenkins job " + name); } }

您可能会在项目中使用启用MAVEN Resources插件目标
copy-resources
启用了模板文件中的变量。

示例: filters

在您的情况下与詹金斯一起使用此案件:

改变您的testng.xml->

<plugin> <artifactId>maven-resources-plugin</artifactId> <version>3.0.1</version> <executions> <execution> <id>copy-resources</id> <phase>validate</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>path_to_output_folder/output</outputDirectory> <resources> <resource> <directory>path_to_resource_dir/res</directory> <!--source to your testng.xml--> <filtering>true</filtering> </resource> </resources> </configuration> </execution> </executions> </plugin>

call maven目标

<parameter name="firstName" value="${firstname}"/>
其中($ firstName)是jenkins变量。

0
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.