testNG标签范围及多suite配置
程序员文章站
2022-05-31 23:27:10
...
一、基本注解及其作用范围
1、testNG的基本注解标签:
@Test:用来把方法标记为测试的一部分
@BeforeSuite:对于套件测试,此套件中的所有测试运行之前运行,只运行一次;一个testng.xml文件中只能有一个suite,要想运行多个suite,需要使用<suite-files>标签,后面介绍
@AfterSuite:对于套件测试,此套件中的所有测试运行之后运行,只运行一次;
@BeforeTest:对于套件测试,在testng.xml中所有<test>标签内的所有类的测试方法执行之前运行
@AfterTest:所有<test>内测试方法执行之后运行
@BeforeClass:在调用当前类之前运行
@AfterClass:在调用当前类之后运行
@BeforeMethod:在每个测试方法执行之前都会运行
@AfterMethod:在每个测试方法执行之后都会运行
@BeforeGroups:在调用属于该组的第一个测试方法之前运行
@AfterGroups:在调用属于该组的最后一个测试方法执行之后运行
testng运行时,顺序是这样的:
@BeforeSuite->@BeforeTest->@BeforeClass->{@BeforeMethod->@Test->@AfterMethod}->@AfterClass->@AfterTest->@AfterSuite,其中{}内的有多少个@Test,就循环执行多少次。
2、注解范围:
除了@BeforeSuite、@BeforeTest、@AfterTest、@AfterSuite可以对不同的测试类生效外,其他的注解的作用范围只在本类中生效。
testng.xml
二、多suite配置
testng的配置文件,一个.xml里面只能有一个suite,那么如果想要设置多个suite怎么弄呢?这个时候需要用到testng的标签<suite-files>。
UITest.xml:
APITest.xml:
最后在testng.xml中把APITest.xml和UITest.xml整合起来即可实现多suite,如下图所示:
<code="java"]
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="systemTest">
<suite-files>
<suite-file path="APITest.xml"></suite-file>
<suite-file path="UITest.xml"></suite-file>
</suite-files>
</suite>
</code>
1、testNG的基本注解标签:
@Test:用来把方法标记为测试的一部分
@BeforeSuite:对于套件测试,此套件中的所有测试运行之前运行,只运行一次;一个testng.xml文件中只能有一个suite,要想运行多个suite,需要使用<suite-files>标签,后面介绍
@AfterSuite:对于套件测试,此套件中的所有测试运行之后运行,只运行一次;
@BeforeTest:对于套件测试,在testng.xml中所有<test>标签内的所有类的测试方法执行之前运行
@AfterTest:所有<test>内测试方法执行之后运行
@BeforeClass:在调用当前类之前运行
@AfterClass:在调用当前类之后运行
@BeforeMethod:在每个测试方法执行之前都会运行
@AfterMethod:在每个测试方法执行之后都会运行
@BeforeGroups:在调用属于该组的第一个测试方法之前运行
@AfterGroups:在调用属于该组的最后一个测试方法执行之后运行
testng运行时,顺序是这样的:
@BeforeSuite->@BeforeTest->@BeforeClass->{@BeforeMethod->@Test->@AfterMethod}->@AfterClass->@AfterTest->@AfterSuite,其中{}内的有多少个@Test,就循环执行多少次。
2、注解范围:
除了@BeforeSuite、@BeforeTest、@AfterTest、@AfterSuite可以对不同的测试类生效外,其他的注解的作用范围只在本类中生效。
testng.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Suite" parallel="none"> <suite name="Suite1" verbose="1" > <test name="Test"> <groups> <run> <include name="functiontest" /> <exclude name="brokenTests" /> </run> </groups> <classes> <class name="TestNGLearn1"/> <methods> <include name="TestNgLearn" /> </methods> </classes> </test> <test> <classes> <class name="com.janson.TestNG1"/> <class name="com.janson.TestNG2"/> </classes> </test> </suite>
二、多suite配置
testng的配置文件,一个.xml里面只能有一个suite,那么如果想要设置多个suite怎么弄呢?这个时候需要用到testng的标签<suite-files>。
UITest.xml:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="UI test"> <test name="baidu search test"> <classes> <class name="testcase.CheckLink"></class> </classes> </test> </suite>
APITest.xml:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="APITest"> <test name="API"> <classes> <class name="APITestcase.CheckWeather"></class> </classes> </test> </suite>
最后在testng.xml中把APITest.xml和UITest.xml整合起来即可实现多suite,如下图所示:
<code="java"]
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="systemTest">
<suite-files>
<suite-file path="APITest.xml"></suite-file>
<suite-file path="UITest.xml"></suite-file>
</suite-files>
</suite>
</code>