Jenkins+maven+testng+htmlreport单元自动化测试

背景说明

为了可以在jenkins自动化运行单元测试的代码,所以使用maven+testng的技术结合,达到手动或者定时去执行单元测试的代码,以便提高人工运行的自动化的效率。单元通过该方案也可以套用在httpclient框架去执行测试web api接口的自动化测试,原理是一致的。

环境准备

  1. 安装开发工具:eclipse开发工具
  2. 安装maven:在官方下载maven在开发环境和jenkins环境都需要安装配置,下载地址:Maven -- Download Apache Mavenhttps://maven.apache.org/download.cgi
  3. 安装jenkins服务:Jenkins
  4. 安装jdk1.7以上的版本:Java Downloads | Oracle

代码结构

配置pom.xml

创建测试项目时,以maven类型项目创建

复制代码
<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>jenkins.testng.demo</groupId>
	<artifactId>TestDemo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>TestDemo</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>
	
	<build>
	    <plugins>
            <!-- 加入maven-surefire-plugin插件用来使用maven执行用例,其中suiteXmlFile配置的就是testNG用例执行文件的地址 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.0.0-M5</version>
                <configuration>
                    <!--          忽略测试错误,继续编译         -->
                    <testFailureIgnore>true</testFailureIgnore>
                    <suiteXmlFiles>
                        <suiteXmlFile>src/main/java/jenkins/testng/demo/TestngSample/testng.xml</suiteXmlFile>
                    </suiteXmlFiles>
                    <!-- 加入编码设置,否则生成的报告会中文乱码 -->
                    <argLine>-Dfile.encoding=UTF-8</argLine>
                </configuration>
            </plugin>
          </plugins>
	</build>
	
	
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>

		<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-surefire-plugin -->
		<dependency>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-surefire-plugin</artifactId>
			<version>3.0.0-M5</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/org.apache.maven/maven-plugin-api -->
		
		<dependency>
			<groupId>org.apache.maven</groupId>
			<artifactId>maven-plugin-api</artifactId>
			<version>3.6.3</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/org.apache.maven/maven-artifact -->
		<dependency>
			<groupId>org.apache.maven</groupId>
			<artifactId>maven-artifact</artifactId>
			<version>3.6.3</version>
		</dependency>


		<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin -->
		<dependency>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId>
			<version>3.8.1</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/org.apache.maven.plugin-tools/maven-plugin-annotations -->
		<dependency>
			<groupId>org.apache.maven.plugin-tools</groupId>
			<artifactId>maven-plugin-annotations</artifactId>
			<version>3.6.0</version>
			<scope>provided</scope>
		</dependency>


		<!-- https://mvnrepository.com/artifact/org.testng/testng -->
		<dependency>
			<groupId>org.testng</groupId>
			<artifactId>testng</artifactId>
			<version>7.1.0</version>
			<scope>test</scope>
		</dependency>


		<!-- https://mvnrepository.com/artifact/org.uncommons/reportng -->
		<dependency>
			<groupId>org.uncommons</groupId>
			<artifactId>reportng</artifactId>
			<version>1.1.4</version>
			<scope>test</scope>
		</dependency>

	</dependencies>
</project>

测试代码

复制代码
package jenkins.testng.demo.TestngSample;
import static org.testng.Assert.assertEquals;
import org.testng.annotations.Test;

public class TestDemong {
	
	@Test
	public void demo() {
		assertEquals(true, true);
		
	}
	
	@Test
	public void demo2() {
		assertEquals(true, true);
		
	}

}

配置testng.xml

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" >
<suite name="test">
	<test name="test">
		<classes>
			<class name="jenkins.testng.demo.TestngSample.TestDemong">
			</class>
		</classes>
	</test>
	<listeners>
		<listener class-name="org.uncommons.reportng.HTMLReporter" />
		<listener
			class-name="org.uncommons.reportng.JUnitXMLReporter" />
	</listeners>
</suite>

配置jenkins

运行查看

相关推荐
还是鼠鼠27 分钟前
tlias智能学习辅助系统--Maven 高级-私服介绍与资源上传下载
java·spring boot·后端·spring·maven
网硕互联的小客服34 分钟前
Apache 如何支持SHTML(SSI)的配置方法
运维·服务器·网络·windows·php
Xiaokai丶1 小时前
Java 8 新特性深度剖析:核心要点与代码实战
java
灵魂猎手1 小时前
3. MyBatis Executor:SQL 执行的核心引擎
java·后端·源码
Galaxy在掘金1 小时前
从业8年,谈谈我认知的后端架构之路-1
java·架构
落日漫游1 小时前
K8s核心组件全解析
运维·docker·运维开发
努力努力再努力wz2 小时前
【c++深入系列】:万字详解模版(下)
java·c++·redis
瓦特what?3 小时前
关于C++的#include的超超超详细讲解
java·开发语言·数据结构·c++·算法·信息可视化·数据挖掘
是乐谷3 小时前
阿里云杭州 AI 产品法务岗位信息分享(2025 年 8 月)
java·人工智能·阿里云·面试·职场和发展·机器人·云计算
Java水解4 小时前
Java中的四种引用类型详解:强引用、软引用、弱引用和虚引用
java·后端