TestNG xml配置文件

簡單介紹java

  運行TestNG測試腳本能夠經過ant構建、xml執行和命令行執行。當想執行某個包或者某個類中的一部分測試腳本的時候,使用xml配置文件是很是便利的,不只能夠選擇某些須要執行的測試腳本,還能夠排除某些不須要運行的腳本。apache

建立testng.xml文件api

  IDEA自動生成:https://www.jianshu.com/p/609a4dcf86ad 或者新建文件後綴.xml也能夠。maven

1.首先聲明一個suite名字,用於描述將要運行的測試腳本集,根據須要任意命名,最終這個名字會在testng的測試報告中看到。測試

<?xml version="1.0" encoding="UTF-8"?>
<suite name="SuiteName" verbose="1" >  
    <test name="TestName" >

2.若是選擇的測試腳本是基於組的(使用了@Test (groups={"student"})這樣的註解),那麼接下來須要聲明如何使用這些組:包含或者排除。若是使用了include標籤標註某些組,那麼在選擇的測試腳本中,只有屬於那些組的測試腳本會被運行。那些未被選中的測試腳本,或者被選中卻不屬於某些組的測試腳本都不會被運行。須要注意,一個測試腳本能夠屬於不少個組,只要有一個組被include標籤標註,那麼它就會被運行。若是使用了exclude標籤標註某些組,那麼在選擇的腳本中,只有不屬於那些組的測試腳本會被運行。若是同時使用了include標籤和exclude標籤,那麼擁有被include標註的組的那些腳本會被運行,擁有被exclude標註的腳本不會被運行。有一個例外是,一個組同時被include和exclude標註了,那麼擁有這個組的腳本會被運行。include和exclude標籤的使用方式以下:ui

<groups>
  <run>
     <include name = "includedGroupName" />
     <exclude name = "excludedGroupName" />
  </run>
</groups>

3.選擇測試腳本能夠從包、類、方法三個層級進行。spa

選擇一個包:插件

<packages>
    <package name="packageName" />
<packages>

選擇一個類:命令行

<classes>
    <classe name = "className"/>
<classes>

選擇一個方法:code

<classes>
    <class name = "className" />
       <methods>
          <include name = "methodName" />
       </methods>
    </class>
</classes>

xml文件樣例

1.選擇一個包中的所有測試腳本(包含子包)

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="First suite" verbose="1" >
    <test name = "allTestsInAPackage" >
        <packages>
            <package name = "whole.path.to.package.* />
        </packages>
    </test>
</suite>            

2.選擇一個類中的所有測試腳本

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Second suite" verbose="1" >
    <test name = "allTestsInAClass" >
        <classes>
            <class name="whole.path.to.package.className />
        </classes>
     </test>
</suite>

3.選擇一個類中的部分測試腳本

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Third suite" verbose="1" >
    <test name = "aFewTestsFromAClass" >
        <classes>
            <class name="whole.path.to.package.className >
                <methods>
                    <include name = "firstMethod" />
                    <include name = "secondMethod" />
                    <include name = "thirdMethod" />
                </methods>
             </class>
        </classes>
    </test>
</suite>

4.選擇一個包中的某些組

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Fourth suite" verbose="1" >
    <test name = "includedGroupsInAPackage" >
    <groups>
        <run>
            <include name = "includedGroup" />
        </run>
    </groups>
    <packages>
        <package name = "whole.path.to.package.* />
    </packages>
    </test>
</suite>

5.排除一個包中的某些組

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Fifth suite" verbose="1" >
<test name = "excludedGroupsInAPackage" >
   <groups>
      <run>
         <exclude name = "excludedGroup" />
      </run>
   </groups>
   <packages>
      <package name = "whole.path.to.package.* />
   </packages>
</test>
</suite>

再maven的pom.xml文件中配置testng.xml

  須要在pom文件中指明testng.xml文件的位置。maven使用surefire這個插件進行測試,能夠執行testng或Junit腳本。

語法爲:

<suiteXmlFile>src/test/resources/testNGFilesFolder/${testNgFileName}.xml</suiteXmlFile> 
 <dependencies>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.8</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.19</version>
                <configuration>
                    <suiteXmlFiles>
                        <suiteXmlFile>testng.xml</suiteXmlFile>//該文件位於工程根目錄時,直接填寫名字,其它位置要加上路徑。
                    </suiteXmlFiles>
                </configuration>
            </plugin>
        </plugins>
    </build>

運行測試腳本

方法一:IDEA鼠標右鍵testng.xml文件—>Run。

方法二:進入項目工程的根目錄,使用以下命令:

mvn clean test -Dtestng.xml
相關文章
相關標籤/搜索