自动化测试由浅入深--TestNG了解熟悉
上一篇文章讲述了,TestNG安装,以及简单的跑了一个小的脚本。这一章讲讲TestNG的注解,层级等。
TestHG常见的用例组织结构为,Tset Suite由多个Test组成。Test由多个Class组成,而一个Class由多个方法构成。我们可以配置testng.xml的层级结构如下:
<suite>
<test>
<classses>
<method>
</method>
</classes>
</test>
</suite>
运行不同层级,可通过不同注解,实现不同的用例执行工作。TestNG常见注解
-
@BeforeSuite:此注解方法会在当前测试集合中任何一测试用例开始运行前执行。
-
@AfterSuite:此注解方法会在当前测试集合中所有测试用例运行结束后执行。
-
@BeforeTest @AfterTest @BeforeClass @AfterClass @BeforeMethod @AfterMethod,解释都和上面一致。
4. @Test,此注解可以理解为一个测试用例。为了更客观的表示上述注解,我们还是写一段代码看看吧。新建一个java类,名字随便起。就叫Testzhu。代码如下:
package cn.autotest;
import org.junit.AfterClass;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class Testzhu {
@Test
//写一个方法叫当中测试用例
public void testcase1(){
System.out.print("执行测试用例1哟!\n");
}
@AfterMethod
// 方法后执行
public void aftermethod(){
System.out.print("测试方法结束后运行!\n");
}
//第二条测试用例
@Test
public void testcase2(){
System.out.print("执行测试用例2哟!\n");
}
@AfterClass
public void afterclass(){
System.out.print("当前测试类最后一个测试方法结束后执行!\n");
}
@BeforeSuite
public void beforsuite(){
System.out.print("当前测试集合中所有测试程序开始运行前执行!\n");
}
@BeforeTest
public void befortest(){
System.out.print("当前测试类中的test开始前运行!\n");
}
@AfterSuite
public void aftersuite(){
System.out.print("当前测试集合中所有测试程序运行结束后执行!\n" );
}
@BeforeMethod
public void beformethod(){
System.out.print("测试方法开始前运行!\n");
}
@BeforeClass
public void beforclass(){
System.out.print("当前测试类第一个测试方法开始前执行!\n");
}
}
;
执行结果:
当前测试集合中所有测试程序开始运行前执行!
当前测试类中的test开始前运行!
当前测试类第一个测试方法开始前执行!
测试方法开始前运行!
执行测试用例1哟!
测试方法结束后运行!
测试方法开始前运行!
执行测试用例2哟!
测试方法结束后运行!
PASSED: testcase1
PASSED: testcase2
===============================================
Default test
Tests run: 2, Failures: 0, Skips: 0
===============================================
当前测试集合中所有测试程序运行结束后执行!
===============================================
Default suite
Total tests run: 2, Failures: 0, Skips: 0
===============================================
大家可以看到,我故意把顺序写乱,但是仍然按照一定的顺序被执行。
今天就讲到这里吧,希望大家关注转发。码字不易。欢迎关注 公 众 号 王大哥自动化测试 or 扫 码