Jtester之TestNG常用注解

1、TestNG常用注解

Here is the list of annotations that TestNG supports:
– @BeforeSuite, @BeforeTest, @BeforeClass, @BeforeMethod, @BeforeGroups
– @AfterSuite, @AfterTest, @AfterClass, @AfterMethod,@AfterGroups
– @DataProvider
– @Test
@ExpectedExceptions
@Factory
@Parameters

■ @BeforeSuite / @AfterSuite—before a suite starts / after all the test methods in a certain suite have been run
■ @BeforeTest / @AfterTest—before a test starts / after all the test methods in a certain test have been run (remember that a test is made of one or more classes)
■ @BeforeClass / @AfterClass—before a test class starts / after all the test methods in a certain class have been run
■ @BeforeMethod / @AfterMethod—before a test method is run / after a test method has been run
■ @BeforeGroups / @AfterGroups—before any test method in a given group is run / after all the test methods in a given group have been run
■ @Test 标记一个测试类或测试方法
■ @DataProvider 标记一个提供测试数据的方法,注解的方法必须返回一个Object[] []。但是当测试类extends JTesrer后,注解的方法可以返回一个DataIterator()对象。DataIterator中的每个data都表示一组测试数据。
■关于@ExpectedExceptions、@Factory、@Parameters,以后再讨论

2、Demo

测试类1:

package BackofficeTest;

import org.testng.annotations.*;

@Test(groups="group3")
public class TestngDemo1 {
    @BeforeSuite
    public void fn1(){
        System.out.println("run @BeforeSuite "+this.getClass().getName());
    }

    @AfterSuite
    public void fn2(){
        System.out.println("run @AfterSuite "+this.getClass().getName());
    }

    @BeforeTest
    public void fn3(){
        System.out.println("run @BeforeTest "+this.getClass().getName());
    }

    @AfterTest
    public void fn4(){
        System.out.println("run @AfterTest "+this.getClass().getName());
    }

    @BeforeClass
    public void fn5(){
        System.out.println("run @BeforeClass "+this.getClass().getName());
    }

    @AfterClass
    public void fn6(){
        System.out.println("run @AfterClass "+this.getClass().getName());
    }

    @BeforeMethod
    public void fn7(){
        System.out.println("run @BeforeMethod "+this.getClass().getName());
    }

    @AfterMethod
    public void fn8(){
        System.out.println("run @AfterMethod "+this.getClass().getName());
    }

    @BeforeGroups("group3")
    public void fn9(){
        System.out.println("run @BeforeGroups "+this.getClass().getName());
    }

    @AfterGroups("group2")
    public void fn10(){
        System.out.println("run @AfterGroups "+this.getClass().getName());
    }

    @Test(groups={"group1","group2"},dataProvider="testdata")
    public void fn11(){
        System.out.println("run @Test(groups={\"group1\",\"group2\"}) "+this.getClass().getName());
    }

    @Test
    public void fn12(){
        System.out.println("run @Test(groups=\"group3\") "+this.getClass().getName());
    }

    @DataProvider(name="testdata")
    public Object[][] fn13(){
        System.out.println("run fn13() @DataProvider(name=\"testdata\") " +this.getClass().getName());
        return new Object[][]{
                new Object[]{},
                new Object[]{},
                new Object[]{}
        };
    } 

}

测试类2:

package BackofficeTest;

import org.testng.annotations.*;


@Test(groups="group3")
public class TestngDemo2 {

    @BeforeSuite
    public void fn15(){
        System.out.println("run fn15() @BeforeSuite "+this.getClass().getName());
    }

    @Test(groups="group3")
    public void fn14(){
        System.out.println("run fn14() @Test "+this.getClass().getName());
    }
}

testng.xml



<suite name="suit" parallel="instances" thread-count="1" verbose="2">
    <test name="test1">
        <classes>
            <exclude name="BackofficeTest.TestngDemo1" />
            <include name="BackofficeTest.TestngDemo2" />
        classes>
        <groups>
            <run>
                <exclude name="group1" />
                <exclude name="group2" />
                <include name="group3" />
            run>
        groups>
    test> 
    <test name="test2">
        <classes>
            <class name="BackofficeTest.TestngDemo1" />
            <class name="BackofficeTest.TestngDemo2" />
        classes>
        <groups>
            <run>
                <include name="group1" />
                <include name="group2" />
                <include name="group3" />
            run>
        groups>
    test>
suite> 

运行情况

Jtester之TestNG常用注解_第1张图片

你可能感兴趣的:(Jtester之TestNG常用注解)