`
congpeixue
  • 浏览: 275539 次
  • 性别: Icon_minigender_1
  • 来自: ...
社区版块
存档分类
最新评论

初识TestNG

阅读更多
绪论
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可以按如下几种方式运行




2
2
分享到:
评论

相关推荐

    testng-xslt-1.1.2.zip

    TestNG XSLT 1.1.2 是一个专门针对TestNG测试框架的扩展,它提供了将TestNG的测试结果转换为易于阅读和分析的XSLT格式的能力。这个压缩包文件“testng-xslt-1.1.2.zip”包含了这个扩展的源代码、文档以及可能的库...

    testng-6.7.jar TestNG依赖包

    TestNG是一个功能强大的Java测试框架,由Cédric Beust创建,它在JUnit的基础上进行了扩展,提供了更多高级功能,如并行测试、测试分组、配置方法、监听器、报告定制等。TestNG的"testng-6.7.jar"是这个框架的核心库...

    TestNG-离线安装包

    TestNG-6.9离线安装包,下载zip解压后,直接拷贝到eclipse下的dropins目录下即可。重启eclipse,TestNG插件即安装成功。重启eclipse会自动安装TestNG插件,所以启动时间较长,请耐心等待。大概3-5min左右。

    eclipse-testng离线包

    TestNG是Java编程环境中一个强大的测试框架,与JUnit相比,它提供了更丰富的功能,如支持多种测试类型、灵活的测试配置、并发测试等。Eclipse是广受欢迎的Java集成开发环境(IDE),它允许开发者通过插件来扩展其...

    testng-6.9.4和testng-6.8.8.zip

    TestNG是Java编程语言中的一款强大的自动化测试框架,与JUnit和Selenium等工具配合使用,为软件测试提供了全面且灵活的解决方案。TestNG由Cédric Beust创建,旨在提高测试效率并支持更复杂的测试场景,如并发测试、...

    testng.zip离线安装

    TestNG是一款功能强大的Java测试框架,它扩展了JUnit的功能,为开发者提供了更多高级特性,如支持并发测试、灵活的测试配置、丰富的注解、详细的测试报告等。在没有网络连接或者网络环境不稳定的情况下,离线安装...

    testng测试报告模板BeautifulReport.7z

    TestNG是一款功能强大的Java测试框架,它为开发者提供了灵活的注解、测试配置、执行模型以及丰富的报告选项。"testng测试报告模板BeautifulReport.7z"是一个包含资源的压缩包,专门用于自定义TestNG测试执行后的报告...

    Testng JAR包及教程

    TestNG是一款强大的测试框架,专为Java开发人员设计,提供了丰富的功能来支持单元测试、集成测试以及端到端测试。它的出现是对JUnit的一种扩展,增加了许多高级特性,如并发测试、参数化测试、依赖管理以及更详细的...

    TestNG安装包

    TestNG是一个Java的框架,所以第一个要求是JDK要安装在你的机器上。 系统要求 JDK 1.5或以上 内存 没有最低要求 磁盘空间 没有最低要求 操作系统 没有最低要求 步骤1 -验证Java安装在你的机器上 现在,打开...

    eclipse-testng 离线包下载

    eclipse-testng 离线包 xmlns:math="http://exslt.org/math" xmlns:testng="http://testng.org"&gt; indent="yes" omit-xml-declaration="yes" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" ...

    TestNG教程.pdf

    TestNG(Testing New Generation)是一个开源的自动化测试框架,用于简化单元测试、集成测试、端到端测试等不同层次的测试需求。它受JUnit和NUnit的启发,并且引入了一些新功能,使得测试过程更加强大和方便。 在...

    testng-6.10.jar

    TestNG是Java编程语言中的一款强大且功能丰富的自动化测试框架,尤其在进行单元测试和集成测试时表现出色。"testng-6.10.jar"是TestNG的特定版本,即6.10版本的库文件,以Java Archive (JAR)格式封装,方便开发者在...

    TestNG离线安装文件 site

    TestNG是一种广泛使用的Java测试框架,它为开发者和测试工程师提供了功能强大且灵活的测试解决方案。这个"TestNG离线安装文件site"包含了在没有网络连接的情况下为Eclipse集成TestNG环境所需的所有组件,特别适合...

    testNG6.11.0

    1.下载testNG 离线安装包【eclipse-testng离线包】,并解压。 2.将解压后的文件..\eclipse-testng离线包\features\目录下的文件夹org.testng.eclipse_6.11.0.201703011520放到eclipse安装路径下的features目录下 3....

    TestNG的离线安装包

    1. 将解压后的文件..\eclipse-testng离线包\features\org.testng.eclipse_6.9.9.201510270734 文件夹 放到 eclipse--》features目录下 2. 将解压后的文件..\eclipse-testng离线包\plugins\org.testng.eclipse_6.9...

    testng-6.3.jar

    testNG 自动化测试工具 工具类 testng-6.3.jar

    testng架包下载

    TestNG是一款功能强大的自动化测试框架,尤其在Java编程语言中被广泛应用。它的设计灵感来源于JUnit,但提供了更多高级特性和灵活性,使得测试更加方便、高效。TestNG的主要目标是简化和改进软件测试过程,支持多种...

    TestNG官方文档中文版.pdf

    根据提供的文件信息,本文将对TestNG这一Java测试框架的相关知识点进行详细解析。TestNG(Test Next Generation)是一种用于Java语言的单元测试框架,它在JUnit的基础上进行了许多改进,提供了更强大、更灵活的测试...

    TestNG-6.3 测试框架

    TestNG是一款功能强大的自动化测试框架,相较于JUnit,它提供了更多的特性和灵活性,使得测试工作更加高效和全面。在TestNG 6.3版本中,我们可以看到一些关键特性,这些特性对于提升测试质量和效率至关重要。 首先...

Global site tag (gtag.js) - Google Analytics