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