我有 Jenkins+Maven2+TestNG 设置。我使用它作为平台来运行自动化测试套件(功能测试)作为参数化构建。
每个测试套件都有几个(~10-20)个参数供用户在测试启动之前设置。这些参数因一个测试套件而异。
现在,我在 Jenkins 中为每个测试套件定义参数,将它们提供给 Maven2(作为<systemPropertyVariables>
surefire 插件属性)并在测试中使用它们System.properties[ '<param_name>' ]
(我们(我们的团队)使用 Groovy 进行测试)。
随着我们测试数量的增加,这种方式会创建越来越丑陋的 pom.xml。我们使用单个 pom.xml,因为我们有一个带有测试的大型测试框架代码库。
现在我想把这种方式换成另一种方式。我不确定到底是哪一个。你能给我一些想法吗?
我想从 pom.xml 的角度以“单参数”的方式实现参数传递:
- Jenkins 中的用户设置参数(与现在相同的参数:param1=value1,param2=valueae2 等)
- 用户单击构建按钮后,Jenkins 执行附加步骤以转换单个文件(csv、xml 等)/json/string(“param1=value1;param2=value2”)中的所有参数
- Jenkins 将这个新的聚合参数作为新的一个通用参数
Param
提供给 Maven(即:在 Jenkins 聚合之后:Param="param1=value1;param2=value2",在 surefire 配置中<generalParam>${Param}</generalParam>
:) - (不同)测试将其解析
Param
为参数列表并照常使用参数
你能帮我建议如何在 Jenkins 中实施这种行为吗?
提前致谢!