最近在搭建自动化的时候呢,会有这样的需求,我们可能每次触发执行的不同的选择的参数的情况,那么我们的jenkins 改如何搭建,我们的对应的maven 需要怎么配置,testng 相关的配置怎么去配置呢。那么我们这里就来和大家去一一揭开谜底。

        jenkins 我们可以打开我们对应的项目。

jenkins创建动态pod jenkins读取动态参数_xml

        选择配置,General勾选This project is parameterized

jenkins创建动态pod jenkins读取动态参数_带参数_02

        然后弹出如下所示 名称,我们展示界面的名称,选项是对应的选项是什么,描述,我们里面要对参数的描述,对应的都选择填写完成之后呢,我们可以在我们需要动态入参的地方去使用。

jenkins创建动态pod jenkins读取动态参数_xml_03

        这里呢,我们是在maven上去使用的,构建选择maven ,然后去 因为我们需要的test.project 是用的上面的project ,那么我们可以用${}的方式去 动态加载我们的选择的数据。这样呢,我们jenkins的配置就完成, 我们可以 保存我们的项目,

jenkins创建动态pod jenkins读取动态参数_testng执行参数_04

        保存后,我们可以选择build   这个时候的build 就是带参数的

jenkins创建动态pod jenkins读取动态参数_带参数_05

           我们点击build with parameters 就可以带参数的构建了。

jenkins创建动态pod jenkins读取动态参数_带参数_06

          默认选择后,我们就可以带参数构建我们的项目了,当然现在我们整体的还是没有打通的,我们需要在 maven 配置我们的构建的动态参数,

        需要在pom.xml进行配置,如下。主要是配置,testEnvironment,和我们对应要执行的testng.xml。配置完成后呢,我们需要到对应的testng.xml进行配置。

<configuration>                    <systemPropertyVariables>                        <testEnvironment>${test.project}testEnvironment>                        <testEnvironment>${test.testone}testEnvironment>                    systemPropertyVariables>                    <suiteXmlFiles>                        <suiteXmlFile>testng.xmlsuiteXmlFile>                    suiteXmlFiles>                    <workingDirectory>target/workingDirectory>                    <forkMode>alwaysforkMode>                configuration>

        打开我们的tesng.xml ,我们去配置我们的参数,配置如下

<?xml versinotallow="1.0" encoding="UTF-8"?><suite name="Suite"  thread-count="5"><test name="test">    <parameter name="test" value="${test.testone}">parameter>    <parameter name="project" value="${test.project}">parameter>    <classes>        <class name="TestCaseTest">class>    classes>test>suite>

        这样 ,我们就可以在代码中去使用我们的参数了,我这里是在

DataProvider里面使用的参数,那么我们需要对这里的参数进行获取,

获取对应的参数呢,我使用的是

ITestContext来获取的对应参数,对应的获取方式是

map.put("project", context.getAttribute( context.getCurrentXmlTest().getParameter("project")));map.put("test", context.getAttribute( context.getCurrentXmlTest().getParameter("test")));

        这样呢,我们就可以获取到对应的参数了,我们在jenkins 配置我们要执行的代码的路径,就可以去执行我们对应的代码了。