绪论
TestNG 是一款测试框架,被设计用于解决大部分的测试需求,涵盖单元测试(测
试一个单独的类)和集成测试(测试有几个类、几个包甚至有几个框架组成的系统)
写一个测试一般需要如下3步:
- 写出你需测试的业务逻辑并在你的代码上加上TestNG注解
- 在 testng.xml 或build.xml中加上测试信息(例如:你需要运行的类名、组名)
- 运行测试
本文档涵盖的主题包括:
- 一个suite使用一个xml文件来定义 。该suite可以包含一个或多个test且该suite使用<suite>标签来定义。
- 一个test使用<test>标签来定义,该test可以包含一个或多个TestNG类
- 一个TestNG类就是一个Java类,它至少包含一个TestNG注解。一个TestNg类使用<class>标签来定义,可以包含一个或多个方法。
- 一个测试方法就是一个在你的代码中使用@test注解标注的java方法
一个TestNG测试可以使用使用@BeforeXXX或@AfterXXX注解被配置为,用于在某一切入点之前或之后执行一些代码逻辑,这些切入点可以是上述所列项中的任何一项。
手册的其它部分将阐述如下内容:
- 对所有注解的一个简单阐述。这将让你对TestNG提供的功能有一个整体认识。如果你想获得更详细的信息, 你还需要参照关于每个注解的描述。
- 对testing.xml语法及如何配置的描述
- 关于各种特征的详细描述以及如何把注解和testing.xml结合在一起使用。
注解
这里是对TestNG中的注解的简单描述。
- @BeforSuite 被标注的方法将在本Suite中所有测试运行之前运行
- @AfterSuite 被标注的方法将在本Suite中所有测试运行之后运行
- @BeforeTest 被标注的方法将在本测试运行之前运行
- @AfterTest 被标注的方法将在本测试运行之后运行
- @BeforeGroups 被标注的方法将在本groups中所有测试运行之前运行
- @AfterGroups 被标注的方法将在本groups中所有测试运行之后运行
- @BeforeClass 被标注的方法将在本class中的所有方法执行之前运行
- @AfterClass 被标注的方法将在本class中的所有方法执行之后运行
- @BeforeMethod 被标注的方法将在每一个测试方法前执行
- @AfterMethod 被标注的方法将在每一个测试方法后执行
alwaysRun 用于before类方法中时(beforeSuite, beforeTest, beforeTestClass 和
beforeTestMethod 但不包括beforeGroups):如果被设为true,被标注的
方法不管属于哪个groups都将被执行
用于after类方法中时(afterSuite, afterClass, ..):如果被设置为true,
被标注的将总能执行不论之前是否有方法出错或被跳过。
dependsOnGroups 本method依赖的groups 列表
dependsOnMethods 本method依赖的method列表
enabled : 指定class/method 是否可用
groups : class/method从属的groups列表
inheritGroups :如果设定为true,本方法将从属于在class级别上被使用@test注解指定的组
- @DataProvider 标记一个method 为另一个测试method 准备数据。被标记的method 须返回一个Object[][] ,其中的Object[]用于为测试方法的参数赋值。被标记为@test的method只有当@test注解的name的值与DataProvider的名字相等时,才能从Data Provider获取值。
name : Data Provider的名字
- @Factory 标记一个method作为一个factory,用于为TestNG的测试类返回object。此方法必须返回Object[].
- @Parameters 描述如何把参数传递到一个@Test标注的method上
value 用于为method的参数赋值的变量列表
- @Test 将一个class或method标记为需要测试的一部分
alwayRun 如果被标记为true,此测试method 将始终运行即使其依赖的method 失败了
DataProvider 此测试方法的data Provider的名字
DataProviderClass 提供data Provider的类。 如果没有被指定,将从本测试方法所在的类或基类中寻找data Provider。如果被指定,data Provider需要被设定为static的。
dependsOnGroups 此method 所依赖的groups列表
dependsOnMethods 此method 所依赖的method列表
description 对于此测试method 的描述
enabled 指定class/method 是否可用
expectedException 此测试方法期待抛出的异常的列表。如果无异常抛出或抛出的异常的种类不符,那么此测试方法将被标记为failure。
groups 此class/method 从属的groups
invocationCount 此method被调用的次数
invocationTimeOut 此测试中所有调用执行的时间的总和。 如果没有指定invocationCount此属性将被忽略。
successPercentage 此method期待成功的百分比
sequential 如果设置为true,此测试类的所有方法被保证按序执行,即使这些正在运行的测试是被标记为parallel="true"的. 此属性只在class级别上起作用,如果使用在method上将被忽略。
timeOut 此测试耗费的最大毫秒数
threadPoolSize 此method所需的线程池的大小。此method按照在invocationCount指定的那样可以以多线程的方式被调用。
Note:如果没有指定invocationCount 此属性将被忽略。
testng.xml
你可以使用多种不同的方式运行TestNg:
- 使用testing.xml文件
- 使用ant
- 从命令行
本节将描述testing.xml的格式(后面部分将涉及ant及命令行)
关于testing.xml的DTD文档,你可以在站点 [url]http://testng.org/testng-1.0.dtd [/url]查询到。
这里是testing.xml文件的一个例子:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1" verbose="1" >
<test name="Nopackage" >
<classes>
<class name="NoPackageTest" />
</classes>
</test>
<test name="Regression1" >
<classes>
<class name="test.sample.ParameterSample" />
<class name="test.sample.ParameterTest" />
</classes>
</test>
</suite>
你可以将包名替换掉类名:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1" verbose="1" >
<test name="Regression1" >
<packages>
<package name="test.sample" />
</packages>
</test>
</suite>
在这个例子中,TestNG将检索包test.sample中的所有类,并且只返回含有
TestNG注解的类。
你也可以指定包含的或不包含的groups和methods
<test name="Regression1">
<groups>
<run>
<exclude name="brokenTests" />
<include name="checkinTests" />
</run>
</groups>
<classes>
<class name="test.IndividualMethodsTest">
<methods>
<include name="testMethod" />
</methods>
</class>
</classes>
</test>
你可以在testng.xml内定义新的组并且可以在属性中增加其它的信息,例如是否平行的
运行测试,使用了多少线程,是否运行Junit测试等等。可以参照DTD得到完整的
属性列表。
运行TestNG
TestNG可以按如下几种方式运行
分享到:
相关推荐
TestNG是一个功能强大的Java测试框架,由Cédric Beust创建,它在JUnit的基础上进行了扩展,提供了更多高级功能,如并行测试、测试分组、配置方法、监听器、报告定制等。TestNG的"testng-6.7.jar"是这个框架的核心库...
TestNG XSLT 1.1.2 是一个专门针对TestNG测试框架的扩展,它提供了将TestNG的测试结果转换为易于阅读和分析的XSLT格式的能力。这个压缩包文件“testng-xslt-1.1.2.zip”包含了这个扩展的源代码、文档以及可能的库...
TestNG-6.9离线安装包,下载zip解压后,直接拷贝到eclipse下的dropins目录下即可。重启eclipse,TestNG插件即安装成功。重启eclipse会自动安装TestNG插件,所以启动时间较长,请耐心等待。大概3-5min左右。
TestNG是Java编程环境中一个强大的测试框架,与JUnit相比,它提供了更丰富的功能,如支持多种测试类型、灵活的测试配置、并发测试等。Eclipse是广受欢迎的Java集成开发环境(IDE),它允许开发者通过插件来扩展其...
TestNG是Java编程语言中的一款强大的自动化测试框架,与JUnit和Selenium等工具配合使用,为软件测试提供了全面且灵活的解决方案。TestNG由Cédric Beust创建,旨在提高测试效率并支持更复杂的测试场景,如并发测试、...
TestNG是一款功能强大的Java测试框架,它扩展了JUnit的功能,为开发者提供了更多高级特性,如支持并发测试、灵活的测试配置、丰富的注解、详细的测试报告等。在没有网络连接或者网络环境不稳定的情况下,离线安装...
TestNG是一个Java的框架,所以第一个要求是JDK要安装在你的机器上。 系统要求 JDK 1.5或以上 内存 没有最低要求 磁盘空间 没有最低要求 操作系统 没有最低要求 步骤1 -验证Java安装在你的机器上 现在,打开...
TestNG是一款强大的测试框架,专为Java开发人员设计,提供了丰富的功能来支持单元测试、集成测试以及端到端测试。它的出现是对JUnit的一种扩展,增加了许多高级特性,如并发测试、参数化测试、依赖管理以及更详细的...
TestNG是一款功能强大的Java测试框架,它为开发者提供了灵活的注解、测试配置、执行模型以及丰富的报告选项。"testng测试报告模板BeautifulReport.7z"是一个包含资源的压缩包,专门用于自定义TestNG测试执行后的报告...
TestNG(Testing New Generation)是一个开源的自动化测试框架,用于简化单元测试、集成测试、端到端测试等不同层次的测试需求。它受JUnit和NUnit的启发,并且引入了一些新功能,使得测试过程更加强大和方便。 在...
TestNG是Java编程语言中的一款强大且功能丰富的自动化测试框架,尤其在进行单元测试和集成测试时表现出色。"testng-6.10.jar"是TestNG的特定版本,即6.10版本的库文件,以Java Archive (JAR)格式封装,方便开发者在...
1.下载testNG 离线安装包【eclipse-testng离线包】,并解压。 2.将解压后的文件..\eclipse-testng离线包\features\目录下的文件夹org.testng.eclipse_6.11.0.201703011520放到eclipse安装路径下的features目录下 3....
TestNG是一种广泛使用的Java测试框架,它为开发者和测试工程师提供了功能强大且灵活的测试解决方案。这个"TestNG离线安装文件site"包含了在没有网络连接的情况下为Eclipse集成TestNG环境所需的所有组件,特别适合...
1. 将解压后的文件..\eclipse-testng离线包\features\org.testng.eclipse_6.9.9.201510270734 文件夹 放到 eclipse--》features目录下 2. 将解压后的文件..\eclipse-testng离线包\plugins\org.testng.eclipse_6.9...
testNG 自动化测试工具 工具类 testng-6.3.jar
TestNG是一款功能强大的自动化测试框架,尤其在Java编程语言中被广泛应用。它的设计灵感来源于JUnit,但提供了更多高级特性和灵活性,使得测试更加方便、高效。TestNG的主要目标是简化和改进软件测试过程,支持多种...
TestNG是一款功能强大的自动化测试框架,相较于JUnit,它提供了更多的特性和灵活性,使得测试工作更加高效和全面。在TestNG 6.3版本中,我们可以看到一些关键特性,这些特性对于提升测试质量和效率至关重要。 首先...
TestNG是Java编程语言中的一款强大且功能丰富的测试框架,主要设计用于自动化软件测试。它由Cedric Beust创建,旨在提供比JUnit更高级的功能,支持更复杂的测试配置和执行模型。TestNG-6.8.8是该框架的一个特定版本...
TestNG 是一个强大的自动化测试框架,广泛应用于Java应用程序的单元测试、集成测试和端到端测试。它由Cédric Beust创建,旨在提供比JUnit更丰富的功能集,特别是对于并行测试和复杂的测试配置。 TestNG的核心特性...