TestNg使用(入門)

1、@Test註解

@Test
	public void test1(){
		System.out.println("test1這是第一個測試方法");
	}

2、@BeforeMethod 在每一個測試方法運行之前都會執行

@BeforeMethod
	public void beforeMethod(){
		System.out.println("beforeMethod這是要在方法運行之前運行的方法");
	}

3、@AfterMethod 在每一個測試方法運行之後都會執行

@AfterMethod
	public void afterMethod(){
		System.out.println("afterMethod這是要在方法運行之後運行的方法");
	}

 

4、@BeforeClass 在類運行之前運行的方法

@BeforeClass
	public void beforeClass(){
		System.out.println("beforeClass這是要在類運行之前運行的方法");
	}

 

5、@AfterClass 在類運行之後運行的方法

@AfterClass
	public void afterClass(){
		System.out.println("afterClass這是要在類運行之後運行的方法");
	}

6、@BeforeSuit 在測試套件運行之前運行的方法,在BeforeClass之前運行的

@BeforeSuite
	public void beforeSuite(){
		System.out.println("beforeSuite");
	}

7、@AfterSuit 在測試套件運行之後運行的方法,在AfterClass之後運行的

@AfterSuite
	public void afterSuite(){
		System.out.println("afterSuite");
	}

測試套件示例:

1、新建三個類,LoginTest   PayTest   SuiteTest

public class LoginTest {
	@Test
	public void loginTest(){
		System.out.println("loginTest");
	}
}

 

 

 

 

public class PayTest {
	@Test
	public void payTest(){
		System.out.println("payTest");
	}
}
public class SuiteTest {
	@BeforeSuite
	public void beforeSuite(){
		System.out.println("beforeSuite");
	}
	
	@AfterSuite
	public void afterSuite(){
		System.out.println("afterSuite");
	}
}

testng.xml文件如下:

<?xml version="1.0" encoding="UTF-8" ?>
<suite name="ztt">
	<test name="login">
		<classes>
			<class name="com.ztt.aa.annotation.SuiteTest"/>
			<class name="com.ztt.aa.annotation.LoginTest"/>
		</classes>
	</test>
	<test name="pay">
		<classes>
			<class name="com.ztt.aa.annotation.SuiteTest"/>
			<class name="com.ztt.aa.annotation.PayTest"/>
		</classes>
	</test>
</suite>

運行結果:

beforeSuite
loginTest
payTest
afterSuite

忽略測試(本次測試不執行):

public class PayTest {
	@Test(enabled=false)
	public void payTest(){
		System.out.println("payTest");
	}
}

組測試(方法分組):

public class GroupsOnMethod {
	@Test(groups = "server")
	public void test1(){
		System.out.println("這是服務端組的測試方法11111");
	}
	@Test(groups = "server")
	public void test2(){
		System.out.println("這是服務端組的測試方法22222");
	}
	@Test(groups = "client")
	public void test3(){
		System.out.println("這是客戶端組的測試方法33333");
	}
	@Test(groups = "client")
	public void test4(){
		System.out.println("這是客戶端組的測試方法44444");
	}
	@BeforeGroups("server")
	public void test5(){
		System.out.println("這是服務端組運行之前運行的方法");
	}
	@AfterGroups("server")
	public void test6(){
		System.out.println("這是服務端組運行之後運行的方法");
	}
}

 

運行結果:

這是服務端組運行之前運行的方法
這是服務端組的測試方法11111
這是服務端組的測試方法22222
這是服務端組運行之後運行的方法
這是客戶端組的測試方法33333
這是客戶端組的測試方法44444

 

組測試(類分組):

@Test(groups = "stu")
public class GroupsOnClass1 {
	public void stu1(){
		System.out.println("GroupsOnClass1中的stu1111執行");
	}
	public void stu2(){
		System.out.println("GroupsOnClass1中的stu2222執行");
	}
}

 

 

 

 

 

 

@Test(groups = "stu")
public class GroupsOnClass2 {
	public void stu1(){
		System.out.println("GroupsOnClass2中的stu1111執行");
	}
	public void stu2(){
		System.out.println("GroupsOnClass2中的stu2222執行");
	}
}

 

@Test(groups = "teacher")
public class GroupsOnClass3 {
	public void teacher1(){
		System.out.println("GroupsOnClass3中的teacher1111執行");
	}
	public void teacher2(){
		System.out.println("GroupsOnClass3中的teacher2222執行");
	}
}

 

testng.xml內容如下:

<?xml version="1.0" encoding="UTF-8" ?>
<suite name="groups">
	<test name="runAll">
 		<groups>
			<run>
				<include name="stu"/>
			</run>
		</groups> 
		<classes>
			<class name="com.ztt.aa.annotation.GroupsOnClass1"/>
			<class name="com.ztt.aa.annotation.GroupsOnClass2"/>
			<class name="com.ztt.aa.annotation.GroupsOnClass3"/>
		</classes>
	</test>
</suite>

運行結果:

GroupsOnClass1中的stu1111執行
GroupsOnClass1中的stu2222執行
GroupsOnClass2中的stu1111執行
GroupsOnClass2中的stu2222執行

異常測試:

 

public class runtimeExceptionTest {
	@Test(expectedExceptions = RuntimeException.class)
	public void runTimeExceptionFailed(){
		System.out.println("這是一個失敗的異常測試");
	}
	
	@Test(expectedExceptions = RuntimeException.class)
	public void runTimeExceptionSuccess(){
		System.out.println("這是我的異常測試");
		throw new RuntimeException();
	}
}

依賴測試:

public class DependTest {
	@Test
	public void test1(){
		System.out.println("這是測試方法一");
		throw new RuntimeException("這是我的異常");
	}
	@Test(dependsOnMethods = {"test1"})
	public void test2(){
		System.out.println("這是測試方法二");
	}
}

test2方法的運行依賴於test1,如果test1方法運行失敗,那麼test2方法不執行

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章