0

我有 Jenkins+Maven2+TestNG 设置。我使用它作为平台来运行自动化测试套件(功能测试)作为参数化构建。

每个测试套件都有几个(~10-20)个参数供用户在测试启动之前设置。这些参数因一个测试套件而异。

现在,我在 Jenkins 中为每个测试套件定义参数,将它们提供给 Maven2(作为<systemPropertyVariables>surefire 插件属性)并在测试中使用它们System.properties[ '<param_name>' ](我们(我们的团队)使用 Groovy 进行测试)。

随着我们测试数量的增加,这种方式会创建越来越丑陋的 pom.xml。我们使用单个 pom.xml,因为我们有一个带有测试的大型测试框架代码库。

现在我想把这种方式换成另一种方式。我不确定到底是哪一个。你能给我一些想法吗?

我想从 pom.xml 的角度以“单参数”的方式实现参数传递:

  1. Jenkins 中的用户设置参数(与现在相同的参数:param1=value1,param2=valueae2 等)
  2. 用户单击构建按钮后,Jenkins 执行附加步骤以转换单个文件(csv、xml 等)/json/string(“param1=value1;param2=value2”)中的所有参数
  3. Jenkins 将这个新的聚合参数作为新的一个通用参数Param提供给 Maven(即:在 Jenkins 聚合之后:Param="param1=value1;param2=value2",在 surefire 配置中<generalParam>${Param}</generalParam>:)
  4. (不同)测试将其解析Param为参数列表并照常使用参数

你能帮我建议如何在 Jenkins 中实施这种行为吗?

提前致谢!

4

0 回答 0