目录

1.TestNg介绍2、TestNG安装3、TestNG使用3.1 编写测试用例脚本3.2 创建TestNG.xml文件(1)创建testng.xml文件(2)修改testng.xml

4、测试报告生成

1.TestNg介绍

TestNg是Java中开源的自动化测试框架,灵感来源于Junit和NUnit。引入Java的注解便于编写和管理测试类和方法

2、TestNG安装

(1)JDK (2)Intelli IDEA (3)在IDEA中安装TestNg插件 (4)如果是Maven项目,还需要在pom.xml中添加依赖和插件

org.testng

testng

6.10

test

maven-surefire-plugin

testng.xml

2.22.1

3、TestNG使用

3.1 编写测试用例脚本

(1)新建测试用例类 (2)使用注解

@Test注解:使用改注解的方法或类可以被testNG识别并运行

@Test(dependsonMethods="test2"):依赖其他方法,运行当前方法之前需要先执行test2

@Test(alwayRun=true):设置为true时,无论什么情况都会运行

@Test(description="xxx"):对用例进行说明

@Test(enabled=false):设置为false时,表示改方法失效

@Test(dataProvider="datas"):设置数据提供者的名称

Before/After注解

针对当前项目:

@BeforeSuite:带有该注释的方法将在该套件中的所有测试方法运行之前运行,仅运行一次。

@AfterSuite:带有该注释的方法将在该套件中的所有测试方法运行之后运行,仅运行一次。

@BeforeTest:带有该注释的方法将在运行属于标签内的类的所有测试方法之前执行

@AfterTest:带有该注释的方法将在运行属于标签内的类的所有测试方法之后执行

针对当前类:

@BeforeClass:带有该注释的方法将在调用当前类的第一个测试方法之前执行

@AfterClass:带有该注释的方法将在调用当前类的第一个测试方法之后执行

@BeforMethod:带有该注释的方法将在每个测试方法之前运行

@AfterMethod:带有该注释的方法将在每个测试方法之后运行

@BeforeGroups:此方法保证在调用属于这些组中的任何一个的第一个测试方法之前不久运行。

@AfterGroups:该方法保证在调用属于任何这些组的最后一个测试方法之后不久运行。

传递参数 (1)@Parameters

@Parameters({"first","last"}):描述如何将参数传递给@Test方法。

需要预先在testng.xml中使用标签传入参数名和参数值

(2)@DataProvider:可以传递更多的参数,不需要在xml中写,直接在方法上加注解就可以用 参考:版权声明:本文为CSDN博主「wangjie0925」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 (1)注释方法返回一个Object[][]:明确知道有几组数据 其中每个Object []可以被分配给测试方法的参数列表。 要从该DataProvider接收数据的@Test方法需要使用与此注释名称相等的dataProvider名称。

@DataProvider(name="loginData")

private Object[][] LoginDataProvider() throws IOException {

Object[][] result=null;

SqlSession session=DatabaseUtil.getSqlSession();

result=new Object[][]{{session.selectOne("loginTest",1)},{session.selectOne("loginTest",2)}};

return result;

}

(2)返回类型是Iterator,不管有多少组测试数据,都可以返回,使用迭代器时,test所在方法的参数类型必须与迭代器中的类型一致

@DataProvider(name="loginData")

private Iterator LoginDataProvider() throws IOException {

List result=new ArrayList();

SqlSession session=DatabaseUtil.getSqlSession();

List alldata=session.selectList("loginTestAll");

Iterator it=alldata.iterator();

while(it.hasNext()){

result.add(new Object[] { it.next() });

}

return result.iterator();

}

(3)断言方法:

硬断言Assert类:断言失败,阻塞后边其他代码执行断言方法基本上是有1至3个输入参数,1个参数为真或假;2-3个参数的顺序是actualValue(实际值)、expectedValue(期望值)、[, message](信息)。Assert.assertEquals(actual,Expected):断言,进行实际和预期值的比较

(1)assertTrue:判断是否为True。 (2)assertFalse:判断是否为False。 (3)assertSame:判断引用地址是否相同。 (4)assertNotSame:判断引用地址是否不相同。 (5)assertNull:判断是否为null。 (6)assertNotNull:判断是否不为null。 (7)assertEquals:判断是否相等。 (8)assertNotEquals:判断是否不相等。 (9)assertEqualsNoOrder:判断忽略顺序是否相等。

软断言SoftAssert类:断言失败,不阻塞后边其他代码执行

3.2 创建TestNG.xml文件

运行TestNG测试脚本需要配置一个xml文件,使用xml配置文件进行测试用例脚本的执行和管理,在xml配置文件里,不仅可以选择某些需要执行的测试脚本,还可以排除某些不需要运行的测试脚本。

(1)创建testng.xml文件

(2)修改testng.xml

参考:Java+Maven+TestNG - 创建项目篇 编写了测试用例脚本后,就可以修改testng.xml文件了。基本格式如下:

每一个xml文件只能有一个suite根标签,代表的是一个测试集(项目);一个suite中可以包含多个test(模块),多个test会按照顺序执行;每一个test里边可以写需要运行的测试用例的class(模块下的测试类)。如果不写,默认会跑所有的测试用例;每个class可以指定要执行哪些用例,不执行哪些用例。如果不写method,则默认本类里的全部用例都执行。

4、测试报告生成

(1)默认的测试报告 执行testng.xml后(maven项目可以使用mvn test命令),在target目录下会生成surefire-reports文件夹,运行index.html文件可以查看报告

(2)ReportNG 在testng.xml中配置监听

在pom.xml文件中添加ReportNG的依赖:

org.uncommons

reportng

1.1.4

test

org.testng

testng

com.google.inject

guice

4.2.0

test

velocity

velocity-dep

1.4

com.google.code.gson

gson

2.8.0

org.uncommons

reportng

1.1.4

test

org.testng

testng

com.google.inject

guice

4.2.0

test

velocity

velocity-dep

1.4

在编辑配置中,取消Listerners中的Use default reports选项 执行testng.xml文件或mvn test,可以看到测试报告在test-output文件夹下

参考:Java自动化测试之TestNG生成测试报告 参考:TestNG基本使用

参考链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: 

发表评论

返回顶部暗黑模式