`
congpeixue
  • 浏览: 269796 次
  • 性别: 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安装包

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

    testNG6.11.0

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

    testng测试报告模板BeautifulReport.7z

    1、testng测试报告模板BeautifulReport 2、testng.xml文件

    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-6.9.4和testng-6.8.8.zip

    testng-6.8.8

    testng-6.9-10

    testng-6.9-10 jar包

    eclipse 安装testNG 离线包

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

    [TestNG] TestNG 初学者指南 (英文版)

    [Packt Publishing] TestNG 初学者指南 (英文版) [Packt Publishing] TestNG Beginner's Guide (E-Book) ☆ 图书概要:☆ Write robust unit and functional tests with the power of TestNG Overview Step-by-...

    eclipse-testng离线安装包

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

    testng-xslt-1.1.2.zip

    testng-xslt-1.1.2.zip

    testNG eclipse插件包

    2.将解压后的文件..\eclipse-testng离线包\features\目录下的文件夹org.testng.eclipse_6.8.6.20130607_0745放到eclipse--&gt;features目录下 3.将解压后的文件..\eclipse-testng离线包\org.testng.eclipse_6.8.6....

    testng-6.7.jar TestNG依赖包

    TestNG依赖包,包含了org.testng.CommandLineArgs类,导入后可解决因找不到依赖而出现的问题

    testNg介绍

    testNg介绍

    testng-6.9.6.jar

    最新testng jar包,testng-6.9.6.jar

    eclipse-testng离线包

    eclipse-testng离线包

    TestNG-离线安装包

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

    测试框架testng包

    开源自动化测试框架testng包,用于appium+java+android测试

    testng-6.10.jar

    testng-6.10.jar

    testng-6.8.8文件

    testng-6.8.8文件

Global site tag (gtag.js) - Google Analytics