TestNG是诞生于JUnit3和JUnit4之间的一个测试框架,虽然在JUnit4之前诞生,但被认为更先进,NG是Next Generation的意思。TestNG拥有诸多新特性,以及消除了JUnit中的许多限制,更适合于大型项目的测试。
成都创新互联公司自2013年起,是专业互联网技术服务公司,拥有项目成都做网站、网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元河源做网站,已为上家服务,为河源各地企业和个人服务,联系电话:18980820575常用注解:
@BeforeSuite | The annotated method will be run before all tests in this suite have run. |
@AfterSuite | The annotated method will be run after all tests in this suite have run. |
@BeforeClass | The annotated method will be run before the first test method in the current class is invoked. |
@AfterClass | The annotated method will be run after all the test methods in the current class have been run. |
@BeforeTest | The annotated method will be run before any test method belonging to the classes inside the |
@AfterTest | The annotated method will be run after all the test methods belonging to the classes inside the |
@BeforeMethod | The annotated method will be run before each test method. |
@AfterMethod | The annotated method will be run after each test method. |
@BeforeGroups | The list of groups that this configuration method will run before. This method is guaranteed to run shortly before the first test method that belongs to any of these groups is invoked. |
@AfterGroups | The list of groups that this configuration method will run after. This method is guaranteed to run shortly after the last test method that belongs to any of these groups is invoked. |
@Test | A Test Case |
注解使用示例:
public class OrderTest { @BeforeSuite public void testBeforeSuite(){System.out.println("BeforeSuite");} @AfterSuite public void testAfterSuite(){System.out.println("AfterSuite");} @BeforeTest public void testBeforeTest(){System.out.println("BeforeTest");} @AfterTest public void testAfterTest(){System.out.println("AfterTest");} @BeforeClass public void testBeforeClass(){System.out.println("BeforeClass");} @AfterClass public void testAfterClass(){System.out.println("AfterClass");} @BeforeGroups(groups = "data") public void testBeforeGroups(){System.out.println("BeforeGroups");} @AfterGroups(groups = "data") public void testAfterGroups(){System.out.println("AfterGroups");} @BeforeMethod public void testBeforeMethod(){System.out.println("BeforeMethod");} @AfterMethod public void testAfterMethod(){System.out.println("AfterMethod");} @Test(groups = "data") public void testGroup1(){System.out.println("1、Belong to group data");} @Test(groups = "data") public void testGroup2(){System.out.println("2、Belong to group data");} } 执行顺序: BeforeSuite BeforeTest BeforeClass BeforeGroups BeforeMethod 1、Belong to group data AfterMethod BeforeMethod 2、Belong to group data AfterMethod AfterGroups AfterClass AfterTest AfterSuite 备注: 其中BeforeGroups和AfterGroups会在指定组的所有方法执行之前和之后执行。超时测试:
@Test(timeOut = 1000)
忽略测试:
@Test(enabled = false)
异常测试:
@Test(expectedExceptions = ArrayIndexOutOfBoundsException.class)
用例分组:
@Test(groups = {"group_one", "group_two"})
依赖测试:
@Test
public void testOne(){}
@Test(dependsOnMethods = "testOne")
public void testTwo(){}
多次执行以及使用线程池:
@Test(invocationCount = 5, threadPoolSize = 5)
用例执行5次,使用5个线程并行执行
套件测试
需要借助XML文件,运行时需要指定XML才能正确执行
//测试整个NewTest以及OldTest中的testThird方法参数化测试:
1、通过xml文件(基本数据类型)
2、代码中使用@DataProvider(复杂数据类型)
@DataProvider(name = "getData") public Object[][] getDataFromFile(){ return new Object[][]{{1,2},{3,4},{5,6}}; } @Test(dataProvider = "getData") public void testCalc(int a, int e){ Assert.assertEquals(a+1, e); } 1、声明一个方法给定名字,返回数组数据。 2、Test方法根据DataProvider方法返回的数据,设定参数列表。 3、按照参数列表顺序操作参数。断言
TestNG的断言总体和JUnit相似,大体上区别只是把提示消息位置放在后面而已。
总结:
相比JUnit,TestNG的参数化测试,依赖测试,分组测试都更方便使用。另外套件测试使用XML和代码实现数据和测试逻辑的分离,并且方便定制分类逻辑更复杂的测试。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前标题:TestNG使用总结-创新互联
文章分享:http://lswzjz.com/article/cdeisj.html