`

testNG标签范围及多suite配置

阅读更多
一、基本注解及其作用范围
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>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics