Test BeforeTest AfterTest
import org.testng.Assert;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
/**
* Hello world!
*
*/
public class AppTest
{
@BeforeTest
public void BeforeTest()
{
System.out.println("before");
}
@Test
public void doTest()
{
int a=1;
int b=2;
int res=a+b;
System.out.println("result="+res);
Assert.assertEquals(res,3);
}
@Test
public void doTest2()
{
int a=2;
int b=3;
int c=a+b;
Assert.assertEquals(c,8);
}
@AfterTest
public void AfterTest()
{
System.out.println("aftertest");
}
}
参数化一组数据 ,以Object[][]的形式,让TestNG对一组数据进行测试,并校验
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class Task {
@Test(dataProvider = "testData")
public void doTest(String testName, int a, int b, int expected) {
int c=a+b;
System.out.println(testName);
Assert.assertEquals(c, expected);
}
@DataProvider
public Object[][] testData() {
return new Object[][]
{
{"test1", 1, 2, 3},
{"test1", 2, 8, 10},
{"test1", 3, 4, 7}
};
}
}
结果:
读取 excel 并校验
数据库校验
1 由于执行的数据是由SQL语句进行的筛选,所以另我们的测试数据又变得更加灵活。
2 比如使用下面这句SQL语句: SELECT * FROM ServiceAPI_InfoRecords WHERE isTest=1。
3 执行结果和想象的一样,只会执行1和3
编写测试配置文件
Testng.xml是一个以xml记录所有测试的文件。这个文件能够很容易地再一个文件中描述所有测试套件和它们的参数,可以将它签入到代码库中,或者通过电子邮件发送给同事。也可以很容易地提取测试的子集,或分成几种运行时配置。
如上面这个例子,它所做的就是执行Task10