最近在搭建自动化的时候呢,会有这样的需求,我们可能每次触发执行的不同的选择的参数的情况,那么我们的jenkins 改如何搭建,我们的对应的maven 需要怎么配置,testng 相关的配置怎么去配置呢。那么我们这里就来和大家去一一揭开谜底。
jenkins 我们可以打开我们对应的项目。
选择配置,General勾选This project is parameterized
然后弹出如下所示 名称,我们展示界面的名称,选项是对应的选项是什么,描述,我们里面要对参数的描述,对应的都选择填写完成之后呢,我们可以在我们需要动态入参的地方去使用。
这里呢,我们是在maven上去使用的,构建选择maven ,然后去 因为我们需要的test.project 是用的上面的project ,那么我们可以用${}的方式去 动态加载我们的选择的数据。这样呢,我们jenkins的配置就完成, 我们可以 保存我们的项目,
保存后,我们可以选择build 这个时候的build 就是带参数的
我们点击build with parameters 就可以带参数的构建了。
默认选择后,我们就可以带参数构建我们的项目了,当然现在我们整体的还是没有打通的,我们需要在 maven 配置我们的构建的动态参数,
需要在pom.xml进行配置,如下。主要是配置,testEnvironment,和我们对应要执行的testng.xml。配置完成后呢,我们需要到对应的testng.xml进行配置。
代码语言:javascript复制<configuration>
<systemPropertyVariables>
<testEnvironment>${test.project}</testEnvironment>
<testEnvironment>${test.testone}</testEnvironment>
</systemPropertyVariables>
<suiteXmlFiles>
<suiteXmlFile>testng.xml</suiteXmlFile>
</suiteXmlFiles>
<workingDirectory>target/</workingDirectory>
<forkMode>always</forkMode>
</configuration>
打开我们的tesng.xml ,我们去配置我们的参数,配置如下
代码语言:javascript复制<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<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来获取的对应参数,对应的获取方式是
代码语言:javascript复制
map.put("project", context.getAttribute( context.getCurrentXmlTest().getParameter("project")));
map.put("test", context.getAttribute( context.getCurrentXmlTest().getParameter("test")));
这样呢,我们就可以获取到对应的参数了,我们在jenkins 配置我们要执行的代码的路径,就可以去执行我们对应的代码了。
欢迎关注雷子说测试。如果感觉对你有帮助,可以点亮在看。