鍍金池/ 教程/ Java/ TestNG配置注解實(shí)例
TestNG參數(shù)測(cè)試(DataProvider)
TestNG配置注解實(shí)例
TestNG預(yù)期異常測(cè)試
TestNG + Selenium負(fù)載測(cè)試
TestNG參數(shù)化測(cè)試
TestNG參數(shù)測(cè)試(XML和DataProvider)
TestNG配置注釋
TestNG套件測(cè)試
TestNG依賴測(cè)試
TestNG忽略測(cè)試
TestNG忽略測(cè)試
TestNG分組測(cè)試
TestNG預(yù)期異常測(cè)試
TestNG + Selenium
TestNG參數(shù)測(cè)試實(shí)例
TestNG超時(shí)測(cè)試
TestNG Hello World入門示例
JUnit 4 Vs TestNG比較
TestNG + Spring集成示例
TestNG分組測(cè)試
TestNG教程
TestNG超時(shí)測(cè)試
JUnit 4 Vs TestNG比較
TestNG基本注解
TestNG依賴性測(cè)試
TestNG套件測(cè)試
TestNG + Spring集成測(cè)試

TestNG配置注解實(shí)例

在TestNG中,我們可以使用以下注釋來(lái)執(zhí)行測(cè)試類的配置,如設(shè)置/清理數(shù)據(jù)庫(kù),準(zhǔn)備虛擬數(shù)據(jù),部署/關(guān)閉服務(wù)器等。

  • @BeforeSuite - 對(duì)于套件測(cè)試,在此套件中的所有測(cè)試運(yùn)行之前運(yùn)行。
  • @AfterSuite - 對(duì)于套件測(cè)試,在此套件中的所有測(cè)試運(yùn)行之后運(yùn)行。

  • @BeforeTest - 對(duì)于套件測(cè)試,在運(yùn)行屬于<test>標(biāo)簽內(nèi)的類的任何測(cè)試方法之前運(yùn)行。

  • @AfterTest - 對(duì)于套件測(cè)試,在運(yùn)行屬于<test>標(biāo)簽內(nèi)的類的所有測(cè)試方法都已運(yùn)行之后運(yùn)行。

  • @BeforeGroups:在調(diào)用屬于該組的第一個(gè)測(cè)試方法之前運(yùn)行。

  • @AfterGroups:在調(diào)用屬于組的最后一個(gè)測(cè)試方法之后運(yùn)行。

  • @BeforeClass- 在當(dāng)前類的第一個(gè)測(cè)試方法之前運(yùn)行。

  • @AfterClass - 運(yùn)行當(dāng)前類中的所有測(cè)試方法之后都運(yùn)行。

  • @BeforeMethod - 在每個(gè)測(cè)試方法之前運(yùn)行。

  • @AfterMethod - 在每個(gè)測(cè)試方法之后運(yùn)行。

注: 套件測(cè)試是什么東西? - 套件測(cè)試是一起運(yùn)行的多個(gè)測(cè)試類。

查看以下示例以查看執(zhí)行順序 - 首先調(diào)用哪個(gè)方法,接下來(lái)又是哪一個(gè)。

創(chuàng)建一個(gè)名稱為:ConfigurationAnnotations 的 Maven 項(xiàng)目,其結(jié)構(gòu)如下所示 -

1. 單測(cè)試類

運(yùn)行單個(gè)測(cè)試用例,演示如何使用 group, classmethod 之前/之后。

創(chuàng)建文件:TestDBConnection.java ,其代碼如下所示 -

package com.yiibai;

import org.testng.annotations.Test;

public class TestDBConnection {

    @Test
    public void runOtherTest1() {
        System.out.println("@Test - runOtherTest1");
    }

    @Test
    public void runOtherTest2() {
        System.out.println("@Test - runOtherTest2");
    }

}

執(zhí)行上面測(cè)試類,輸出結(jié)果如下 -

[TestNG] Running:
  C:\Users\Administrator\AppData\Local\Temp\testng-eclipse-634199298\testng-customsuite.xml

@BeforeClass
@BeforeGroups
@BeforeMethod
@Test - runTest1
@AfterMethod
@AfterGroups
@BeforeMethod
@Test - runTest2
@AfterMethod
@AfterClass
PASSED: runTest1
PASSED: runTest2

===============================================
    Default test
    Tests run: 2, Failures: 0, Skips: 0
===============================================


===============================================
Default suite
Total tests run: 2, Failures: 0, Skips: 0
===============================================

[TestNG] Time taken by org.testng.reporters.XMLReporter@1b40d5f0: 14 ms
[TestNG] Time taken by org.testng.reporters.SuiteHTMLReporter@6ea6d14e: 50 ms
[TestNG] Time taken by org.testng.reporters.EmailableReporter2@4563e9ab: 6 ms
[TestNG] Time taken by [FailedReporter passed=0 failed=0 skipped=0]: 0 ms
[TestNG] Time taken by org.testng.reporters.jq.Main@2aaf7cc2: 42 ms
[TestNG] Time taken by org.testng.reporters.JUnitReportReporter@45c8e616: 3 ms

2. 套件測(cè)試類

再創(chuàng)建2個(gè)測(cè)試類來(lái)演示如何使用之前/之后的套件和測(cè)試。

創(chuàng)建文件:DBConfig.java ,其代碼如下所示 -

package com.yiibai;

import org.testng.annotations.AfterSuite;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.BeforeTest;

public class DBConfig {

    @BeforeSuite()
    public void beforeSuite() {
        System.out.println("@BeforeSuite");
    }

    @AfterSuite()
    public void afterSuite() {
        System.out.println("@AfterSuite");
    }

    @BeforeTest()
    public void beforeTest() {
        System.out.println("@BeforeTest");
    }

    @AfterTest()
    public void afterTest() {
        System.out.println("@AfterTest");
    }

}

創(chuàng)建文件:TestDBConnection.java ,其代碼如下所示 -

package com.yiibai;

import org.testng.annotations.Test;

public class TestDBConnection {

    @Test
    public void runOtherTest1() {
        System.out.println("@Test - runOtherTest1");
    }

    @Test
    public void runOtherTest2() {
        System.out.println("@Test - runOtherTest2");
    }

}

創(chuàng)建一個(gè)XML文件以一起運(yùn)行多個(gè)測(cè)試用例。 閱讀XML的注釋,很容易就明白了。

創(chuàng)建文件:testng.xml ,其代碼如下所示 -

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<!-- @BeforeSuite -->
<suite name="TestAll">

    <!-- @BeforeTest -->
    <test name="case1">
      <classes>
        <class name="com.yiibai.TestConfiguration" />
        <class name="com.yiibai.TestDBConnection" />
        <class name="com.yiibai.DBConfig" />
      </classes>
    </test>
    <!-- @AfterTest -->

    <!-- @BeforeTest -->
    <test name="case2">
      <classes>
        <class name="com.yiibai.TestDBConnection" />
        <class name="com.yiibai.DBConfig" />
      </classes>
    </test>
    <!-- @AfterTest -->

</suite>
<!-- @AfterSuite -->

執(zhí)行上面代碼,在文件:TestDBConnection.java 右鍵,在彈出的菜單項(xiàng)中選擇 “Run As ” => Run Configures… ,如下圖所示 -

在新彈出框中輸入對(duì)應(yīng)的 testng.xml 文件,如下所示 -

輸出結(jié)果如下 -

[TestNG] Running:
  F:\worksp\testng\ConfigurationAnnotations\src\main\java\com\yiibai\testng.xml

@BeforeSuite
@BeforeTest
@BeforeClass
@BeforeGroups
@BeforeMethod
@Test - runTest1
@AfterMethod
@AfterGroups
@BeforeMethod
@Test - runTest2
@AfterMethod
@AfterClass
@Test - runOtherTest1
@Test - runOtherTest2
@AfterTest
@BeforeTest
@Test - runOtherTest1
@Test - runOtherTest2
@AfterTest
@AfterSuite

===============================================
TestAll
Total tests run: 6, Failures: 0, Skips: 0
===============================================