Jenkins多参数执行测试套件

工作中在使用Java+Selenium+TestNG+Maven+Jenkins做WebUI自动化测试的过程中,想要配置两个参数化构建。第一个就是执行Testng的XML文件参数;另一个参数就是环境参数,该参数对应WebUI自动化测试的环境。

实际效果:Jenkins给定不同的XML文件名称、环境参数后,会执行指定XML文件,指定环境的测试。

首先Jenkins需要安装插件Build With Parameters (输入框式的参数)或者 Persistent Parameter (下拉框式参数)。

然后在maven项目配置页面,选择下图选项:

 

环境数据配置如下:

 

此时将环境参数配置好。回到maven pom文件配置参数,这里使用了profile去实现参数化。

<!-- 不同的打包环境 -->
<profiles>
    <!-- 测试环境,默认激活 -->
    <profile>
        <id>test</id>
        <properties>
            <env>test</env>
        </properties>

    </profile>

    <!-- 深圳环境 -->
    <profile>
        <id>sz</id>
        <properties>
            <env>sz</env>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault><!--默认启用的是sz环境配置-->
        </activation>
    </profile>

    <!-- 广西环境 -->
    <profile>
        <id>gx</id>
        <properties>
            <env>gx</env>
        </properties>

    </profile>

    <!-- 演示环境 -->
    <profile>
        <id>example</id>
        <properties>
            <env>example</env>
        </properties>

    </profile>
</profiles>

然后我的思路是想法是通过evn配置文件读取各个环境对应的所有配置,

所以在main目录的resource文件夹下创建了evn.properties文件,然后建立了filters文件夹去管理所有环境的数据配置,文件结构和文件数据如下

 

evn.properties文件数据如下

# Environment
test.host=${test.host}


# 数据源配置
datasource.url=${jdbc-url}
datasource.username==${jdbc-usernamel}
datasource.password==${jdbc-password}
datasource.driver-class-name=com.mysql.cj.jdbc.Driver

filters-sz配置文件数据如下

# ip
test.host=http://zhan.zzxes.com.cn/
# 数据库
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql:///campus_terminal?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
username=root
password=123

项目实际取参代码如下:

public String GetHost(String url) {
   InputStream stream = this.getClass().getClassLoader().getResourceAsStream("env.properties");
   properties = new Properties();
   try {
      properties.load(stream);
   } catch (IOException e) {
      e.printStackTrace();
   }
   String host = properties.getProperty("test.host");
   System.out.println(host);
   return host;
}

此时,去Jenkins构建项目时,就可以去选择对应的环境来进行构建。构建后会自动打开对应域名的环境。

 

接下来进行测试用例的选择执行,在maven中添加配置

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.22.0</version>
    <configuration>
        <argLine>-Dfile.encoding=UTF-8</argLine>
        <encoding>UTF-8</encoding>

        <suiteXmlFiles>
            <!--suppress UnresolvedMavenProperty -->
            <suiteXmlFile>${project.basedir}/src/test/testsuite/${RunTest}</suiteXmlFile>
          
        </suiteXmlFiles>
    </configuration>
</plugin>

此时,在Jenkins中添加对应选择参数

 

最后,我们在构建预步骤中加入命令,如下图

 

这是时候,Jenkins构建maven项目时,就可以选择对应参数去构建,可以根据需要去执行对应环境的对应模块的用例。

后发现在构建成功后,整个测试套件还会重复build一次,排查问题后,应该是在构建命令设置时不应该使用test 直接使用package即可

 

clean package -Dmaven.test.skip=true -P%env% -DRunTest=%RunTest%

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值