TestNG提供的标注详解

发表于:2018-7-18 10:56

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:易生一世    来源:CSDN

  为了开发测试用例TestNG提供了大量的标注annotations,用于在测试类中设置一个或多个测试方法。本文只是提供对TestNG标注的一览,具体用法见后续文章
  @BeforeSuite,在测试类中修饰一个方法,对于该方法所在的testng.xml中的<suite>,对<suite>中的任意测试方法执行之前,先执行该方法;
  @AfterSuite,在测试类中修饰一个方法,对于该方法所在的testng.xml中的<suite>,对<suite>中的所有测试方法执行之后,再执行该方法;
  @BeforeTest,在测试类中修饰一个方法,对于该方法所在的testng.xml中的<test>,对<test>中的任意测试方法执行之前,先执行该方法;
  @AfterTest,在测试类中修饰一个方法,对于该方法所在的testng.xml中的<test>,对<test>中的所有测试方法执行之后,再执行该方法;
  @BeforeGroups,在测试类中修饰一个方法,对于该方法所在的testng.xml中的<groups>,对<groups>中的任意测试方法执行之前,先执行该方法;
  @AfterGroups,在测试类中修饰一个方法,对于该方法所在的testng.xml中的<groups>,对<groups>中的所有测试方法执行之后,再执行该方法;
  @BeforeClass,在测试类中修饰一个方法,该方法所在的测试类中的任意方法执行之前,先执行该方法;
  @AfterClass,在测试类中修饰一个方法,该方法所在的测试类中的其他所有方法执行之后,再执行该方法;
  @BeforeMethod,在测试类中修饰一个方法,该方法在任何一个测试方法执行之前执行;
  @AfterMethod,在测试类中修饰一个方法,该方法在任何一个测试方法执行之后执行;
  说明:上述annotations共有的属性如下:
  alwaysRun,如果true,被修饰的方法将总是被执行(除了@BeforeGroups之外);
  dependsOnGroups,被修饰方法所依赖的组列表;
  dependsOnMethods,被修饰方法所依赖的其他方法的列表;
  enabled,被修饰方法是否被激活;
  groups,被修饰方法所属的组(可以有多个组);
  inheritGroups,如果true,被修饰方法还将被加入到定义测试类时由@Test设置的组;
  @DataProvider,在测试类中修饰一个方法,该方法返回Object[][]类型的数据,作为其他测试方法的数据源。
  name,为数据源定义一个唯一的名字,供其他测试方法通过名字引用数据源
  parallel,默认false,如果true则引用该数据源的测试方法并行执行
  @Factory,在测试类中修饰一个方法,该方法可以动态生成多个测试类的不同实例,以Object[]类型返回,供后续执行测试方法使用。
  @Parameters,在测试类中修饰一个测试方法,为被修饰的测试方法设置参数
  value,测试方法的参数列表
  @Listeners,修饰一个测试类,为测试类设置监听器
  value,测试类的监听器列表
  @Test,修饰一个测试类,或者在测试类中修饰一个方法。修饰一个测试类时,测试类中的所有public的方法都将成为测试方法。
  alwaysRun,如果true,被修饰的方法将总是被执行(除了@BeforeGroups之外);
  dataProvider,数据源的name;
  dataProviderClass,数据源所在的Java类名。如果未设置该属性,则数据源与测试方法在同一个测试类中;如果设置了类名,则作为数据源的方法必须是所在Java类的静态方法(即static);
  dependsOnGroups,被修饰方法所依赖的组列表;
  dependsOnMethods,被修饰方法所依赖的其他方法的列表;
  description,对呗修饰方法的描述
  enabled,被修饰方法是否被激活;
  expectedExceptions,被修饰方法预期将抛出的异常的列表。被修饰方法在执行过程中如果未抛出任何异常或者抛出未指定异常,则测试失败;
  groups,被修饰方法所属的组(可以有多个组);
  invocationCount,被修饰方法在执行过程中的被调用次数;
  invocationTimeout,被修饰方法运行执行的最大毫秒数(每次被调用所执行的时间之和)。如果invocationCount未设置,则该值也将被忽略。
  priority,被修饰方法的优先级,值越小优先级越高;
  successPercentage,被修饰方法成功执行的百分比;
  singleThreaded,当@Test修饰测试类时才有效。如果true,则被修饰测试类中的所有测试方法都在一个线程中执行,而不管在testng.xml中的<suite>为parallel属性设置了什么值。
  timeOut,被修饰方法运行执行的最大毫秒数;
  threadPoolSize,被修饰方法的线程池大小,被修饰方法将多线程执行。如果invocationCount未设置,则该值也将被忽略。

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号