前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jenkin+maven+testng动态入参构建自动化

Jenkin+maven+testng动态入参构建自动化

作者头像
雷子
发布2021-03-15 14:29:10
5650
发布2021-03-15 14:29:10
举报
文章被收录于专栏:雷子说测试开发

最近在搭建自动化的时候呢,会有这样的需求,我们可能每次触发执行的不同的选择的参数的情况,那么我们的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 配置我们要执行的代码的路径,就可以去执行我们对应的代码了。

欢迎关注雷子说测试。如果感觉对你有帮助,可以点亮在看。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雷子说测试开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档