TestNg JAVA 自動化單元測試框架Demo

TestNg html

TestNg 是java的一個自動化單元測試框架 java

參考:http://testng.org/doc/index.html框架


環境準備 編輯器

既然是java 的自動化單元測試框架,就必需要有java的環境了,這裏使用的編輯器是Eclipse,已經安裝過TestNg 插件,若是環境準備好就能夠開始了ide


代碼實例 函數

代碼結構如圖 單元測試



新建一個java項目,以後添加一個TestNg類,以後會生成一個測試類,和一個xml文件 測試

(若是發現TestNg編輯是出錯,沒法調用TestNg的標籤函數,那麼導入TestNg.jar.能夠右鍵點擊項目,以後BuildPath ->add Libary->選擇TestNg 便可) ui

 


簡單地TestNg類插件

package TestNgDemo;

//使用TestNg 測試框架


import org.testng.Assert;

import org.testng.annotations.Test;

import org.testng.annotations.BeforeClass;

import org.testng.annotations.AfterClass;



public class NewTest {


  //測試開始前執行一次

  @BeforeClass

  public void beforeClass() {

      System.out.println("開始前執行一次");

  }


  @Test

  public void case1() {

      System.out.println("case1");

  }


  @Test

  public void case2() {

      int a = 2;

      int b = 3;

      int sum = a+b;

      Assert.assertEquals(sum, 5, "Result Error");

      System.out.println("case2");

  }


  //測試結束時執行一次

  @AfterClass

  public void afterClass() {

      System.out.println("結束時執行一次");

  }


}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

對應的Xml配置文件(TestNg 都是經過註釋標籤,有點相似Junit,而且經過xml文件託管):


<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">

<suite name="Suite" parallel="false">

  <test name="Test">

    <classes>

      <class name="TestNgDemo.NewTest"/>

    </classes>

  </test> <!-- Test -->

</suite> <!-- Suite -->

1

2

3

4

5

6

7

8

9

10


使用TestNg Xml 進行數據驅動傳遞參數

package TestNgDemo;

//使用TestNg 傳遞參數



import org.testng.annotations.Parameters;

import org.testng.annotations.Test;

import org.testng.annotations.BeforeMethod;

import org.testng.annotations.AfterMethod;


public class NewTest2 {


    @BeforeMethod

    public void beforeMethod() {

        System.out.println("每一個方法運行時運行");

    }


    //經過Parameters 獲取Xml 中指定的參數

    @Parameters({"name","age"})

    @Test

    public void case1(String name,int age) {


        System.out.println("case1 Name is"+ name);

        System.out.println("case1 Age is"+ age);


    }



    @Test

    public void case2() {


        System.out.println("case2");

    }




    @AfterMethod

    public void afterMethod() {

        System.out.println("每一個方法結束時運行");

    }


}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

對應的xml以下:


<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">

<suite name="Suite" parallel="false">


    <parameter name="name" value="TestName" />

    <parameter name="age" value="55" />


  <test name="Test">

    <classes>

      <class name="TestNgDemo.NewTest2"/>

    </classes>

  </test> <!-- Test -->

</suite> <!-- Suite -->

1

2

3

4

5

6

7

8

9

10

11

12

13


經過xml設置分組,運行不一樣的case

package TestNgDemo;

//TestNg  分組運行


import org.testng.annotations.AfterMethod;

import org.testng.annotations.BeforeMethod;

import org.testng.annotations.Parameters;

import org.testng.annotations.Test;

import org.testng.annotations.BeforeClass;

import org.testng.annotations.AfterClass;


public class NewTest3 {


    @BeforeMethod

    public void beforeMethod() {

        System.out.println("Begain");

    }


    @Parameters({"name","age"})

    @Test(groups="CaseGroup1")

    public void case1(String name,int age) {


        System.out.println("case1 Name is"+ name);

        System.out.println("case1 Age is"+ age);


    }



    @Test(groups="CaseGroup2")

    public void case2() {


        System.out.println("case2");

    }




    @AfterMethod

    public void afterMethod() {

        System.out.println("End");

    }


}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

對應的xml文件以下,須要運行那個組的時候,就能夠直接更改:


<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">

<suite name="Suite" parallel="false">


    <parameter name="name" value="TestName" />

    <parameter name="age" value="55" />



  <test name="Test">



  <grroup>

    <define name = CaseGroup1/>

    <define name = CaseGRoup2/>


    <run>

        <include name = CaseGroup1/>

    </run>


  </grroup>

    <classes>

      <class name="TestNgDemo.NewTest3"/>

    </classes>

  </test> <!-- Test -->

</suite> <!-- Suite -->

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

TestNg 是經過Xml文件管理測試累的,能夠看到,每一個測試方法均可以看作一條Case,而且開頭都有@Test 做爲測試標記 

更多的TestNg xml管理的例子能夠參考: 

相關文章
相關標籤/搜索