testng自动化框架之注解和套件
最近面试老是问起testng 相关问题 由于很久不怎么玩,忘得也差不多了 正好这段时间拾起来好好总结再学习下
1.首先说下 什么testng
定义 :testng 他和junit比 更加易用、强大,且支持注解、分组、依赖、参数数、多线程组织自动化脚本 这么一句话 其实ng 就是下一代的意思
优点:自带非常漂亮的html格式报告 ;
支持多线程测试;
支持日志输出模式
支持多种注解 如 test 、method、class 、suiite 以及groups 分组 depends依赖测试 参数 (Parameters 、DataProvider)
执行顺序:
suite --> class --->method --->test
2.下面是注解代码展示
1 public class TestApi { 2 // 先执行suite -->class --->method--->test 3 @Test 4 public void test1() { 5 System.out.println("第一个test测试"); 6 } 7 @BeforeMethod 8 public void beforMethod() { 9 System.out.println("先执行class 后面是 beforeMethod方法"); 10 } 11 @AfterMethod 12 public void afterMethod(){ 13 System.out.println("再执行beforeMethod方法"); 14 } 15 @BeforeClass 16 public void beforeclass() { 17 System.out.println("前面是sutil再执行beforeclass类后面是method"); 18 } 19 @AfterClass 20 public void afterclass(){ 21 System.out.println("再执行afterclass类"); 22 } 23 @BeforeSuite 24 public void beforesuite() { 25 System.out.println("先执行beforesutil集合套件后面是afterclass"); 26 } 27 @AfterClass 28 public void aftersuite(){ 29 System.out.println("再执行beforesutil 集合套件"); 30 } 31 }
注解输出报告模式
3.测试套件 suite
首先是新建个包名为com.testng.API.Suite,下面是三个类 login 登录、Pay 支付、SuiteCongfig 配置
log 类
package com.testng.API.Suite; import org.testng.annotations.Test; public class login { @Test public void login() { System.out.println("login success"); } }
Pay类
package com.testng.API.Suite; import org.testng.annotations.Test; public class Pay { @Test public void pay(){ System.out.println("pay success"); } }
SuiteConfig
package com.testng.API.Suite; import org.testng.annotations.AfterSuite; import org.testng.annotations.BeforeSuite; public class SuiteConfig { @BeforeSuite public void beforeSuite(){ System.out.println("执行打印beforeSuite"); } @AfterSuite public void afterSuite(){ System.out.println("执行打印afterSuite"); } }
后面是在项目右键 new个文件为resouce
后面再resouce new个suite.xml
在suite.xml 上 写上xml peizhi文件
1 <?xml version="1.0" encoding="UTF-8"?> 2 <suite name="test"> 3 <test name="login"> 4 <classes> 5 <class name="com.testng.API.Suite.SuiteConfig"/> 6 <class name="com.testng.API.Suite.login"/> 7 </classes> 8 </test> 9 10 <test name="pay"> 11 <classes> 12 <class name="com.testng.API.Suite.SuiteConfig"/> 13 <class name="com.testng.API.Suite.Pay"/> 14 </classes> 15 </test> 16 17 </suite>
结果: