testNG执行测试用例

测试人员一般用TestNG来写自动化测试。  开发人员一般用JUnit写单元测试。

 

在我们创建测试用例时,大概分三个层级。

  • 测试包(目录)
  • 测试类(文件)
  • 测试用例(@Test 注解的方法)

接下来介绍,如何控制这三个级别用例的执行

核心还是通过 testng.xml 文件配置

1.用例分组

2.用例执行顺序

3.用例依赖(上一个用例执行失败,下一个依赖的用例不在执行)

4.测试组件依赖(dependsOnGroups 来设置组的依赖,testAdd1()和 testAdd2() 同属于于 funtest组,testAdd3() 依赖于funtest组,该组有中有一条用例运行失败,则testAdd3() 不再执行。)

5.

通过 @DataProvider 实现参数化

package com.net.suit.discover;

import static org.testng.Assert.assertEquals;

import org.testng.annotations.DataProvider;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

public class DataProviderTest {

// @Test
// @Parameters({"add1","add2","result"})
// public void testAdd1(int add1,int add2,int result) {
// assertEquals(add1+add2,result);
//
// }

//定义对象数组
@DataProvider(name="add")
public Object[][] Users(){
return new Object[][] {
{3,2,5},
{2,2,4},
{3,3,7},
};

}

@Test(dataProvider="add")
public void testAdd2(int add1,int add2,int result) {
assertEquals(add1+add2,result);
}

}

 

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1">
<test name="test12" preserve-order="false">
<classes>
<class name="com.net.suit.discover.DataProviderTest">
<methods>
<include name="testAdd2" />

</methods>
</class>
</classes>
</test>
</suite>

xml配置按方法来配置就行了,如果是通过parameter 传参数,就按 下面的配置


<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="测试套件">
<test name="简单测试">
<parameter name="add1" value="3"/>
<parameter name="add2" value="2"/>
<parameter name="result" value="5"/>
<classes>
<class name="test.sample.DataProviderTest" />
</classes>
</test>

 

6.

当然我们也可以设置测试报告的内容级别. 

verbose="2" 标识的就是记录的日志级别,共有0-10的级别,其中0表示无,10表示最详细

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1">
<test name="test12" verbose="2">
<classes>
<class name="TankLearn2.Learn.TestNGLearn1" />
</classes>
</test>
</suite>

 

posted @ 2018-12-20 14:58  aprial01  阅读(1100)  评论(0编辑  收藏  举报