TestNG提供的标注详解

来源:互联网 发布:泰拳和拳击 知乎 编辑:程序博客网 时间:2024/05/16 12:43

为了开发测试用例,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未设置,则该值也将被忽略。



1 0
原创粉丝点击