














TestNG是Java中的一个测试框架,是一个目前很流行实用的单元测试框架,有完善的用例管理模块,配合Maven能够很方便管理依赖第三方插件。使用TestNG可以做功能、接口、单元、集成的自动化测试,最常见的是结合selenium做Web页面的自动化测试和结合httpclient的接口测试,它使用Java注释去写测试方法。主要特点:
测试人员一般用TestNG来写自动化测试,开发人员一般用Junit写单元测试,TestNG适合测试人员使用的原因:
前提条件: 安装Java SDK。
将 Maven 下载到本地解压后
设置环境变量"我的电脑"右键菜单->属性->高级->环境变量->系统变量->新建
找到"Path"变量名 ->"编辑"添加如下:
添加好了以后,打开"cmd"运行"mvn -version"来测试Maven是否配置正确
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T02:41:47+08:00)
Maven home: D:\Java_maven\apache-maven-3.6.3\bin\..
Java version: 1.8.0_161, vendor: Oracle Corporation, runtime: D:\Java\jdk1.8.0_161\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "x86", family: "windows"
配置Maven仓库
将maven的仓库指向自己的源代码存在的位置。
修改 Maven 仓库的路径。 打开...\apache-maven-3.6.3\conf\settings.xml 文件, 大概在49行到57行之间的位置做如下修改:
<localRepository>D:\\Git_genejiang2012\\my_testng\</localRepository>
打开IDEA
2.1 新建Maven的project

2.2 打开IDEA的Settings, 修改Maven的路径, maven的路径为maven存放的本地路径

2.3 打开项目文件下的POM.xml文件
增加maven的插件下载路径
<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.1.0</version>
<scope>test</scope>
</dependency>
</dependencies>
加入testng的版本信息, maven自动下载相关插件
<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.1.0</version>
<scope>test</scope>
</dependency>
</dependencies>`
增加Build的信息
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>${jdk.version}</source><!-- 源代码使用的开发版本 -->
<target>${jdk.version}</target><!-- 需要生成的目标class文件的编译版本 -->
<!-- 解决maven test命令时console出现中文乱码乱码 -->
<argLine>-Dfile.encoding=UTF-8</argLine>
<testFailureIgnore>true</testFailureIgnore>
<suiteXmlFiles>
<suiteXmlFile>testNG.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
<!-- 添加插件 关联testNg.xml -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.15</version>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
<suiteXmlFiles>
<file>testNG.xml</file>
</suiteXmlFiles>
<!--<workingDirectory>target/</workingDirectory>-->
</configuration>
</plugin>
</plugins>
<!--配置resources 资源-->
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.xls</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
2.4 在当前project创建testNG.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="my_test" parallel="false">
<test name="testDemo1">
<classes>
<class name="com.genestudio.test.TestDemo"></class>
</classes>
</test>
</suite>
2.5 新建package, com.genestudio.test, 在该package下面创建TestDemo类
package com.chiefclouds.test;
import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterGroups;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeGroups;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class TestDemo {
@BeforeSuite
public void beforeSuite(){
System.out.println("Before Suite!");
}
@AfterSuite
public void afterSuite(){
System.out.println("After Suite!");
}
@BeforeTest
public void beforeTest(){
System.out.println("Before Test");
}
}
2.6 maven中run test, 查看log 结果
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running TestSuite
Hello TestNG
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.961 s - in TestSuite
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.535 s
[INFO] Finished at: 2020-07-15T16:50:13+08:00
[INFO] ------------------------------------------------------------------------
2.7 查看targe中生成中测试报告,${project_dir}$\target\surefire-reports\emailable-report.html
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。