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管理的例子能够参考: 

相关文章
相关标签/搜索