初识TestNg测试框架和reportng

本文介绍了TestNg测试框架的基本概念,包括其官网、主要特性、如何运行测试用例,以及在maven工程中的配置。深入探讨了TestNg注解的使用,如数据驱动、依赖管理、执行顺序等,并展示了testng.xml配置的详细步骤。同时,文章还提到了ReportNG作为TestNg报告的替代方案,讲解了如何在pom.xml和testng.xml中进行配置,并给出了ReportNG报告的生成路径。最后,讨论了testng.xml的参数化方法及其在测试类中的优化应用。
摘要由CSDN通过智能技术生成

一、TestNg官网

https://testng.org/doc/documentation-main.html

二、TestNg特性

TestNg集成了JUnit和NUnit测试框架,也引入了新功能,使其功能更强大,更易于使用。具体TestNg的特性有如下几点:
1.注解
2.基于线程池运行测试
3.多线程运行代码是安全的
4.灵活的测试配置
5.支持数据驱动测试 @DataProvider
6.强大的执行模型,不需要较多的TestSuite
7.支持Eclipse、maven、IDEA等
8、可以嵌入BeanShell

三、运行一个TestNg测试case

1.Write the business logic of your test and insert TestNG annotations in your code.
2.Add the information about your test (e.g. the class name, the groups you wish to run, etc...) in a testng.xml file or in build.xml.
3.Run TestNG.

四、maven工程pom.xml 配置

<dependency>
	 <groupId>org.testng</groupId>
	<artifactId>testng</artifactId>
	<version>6.14.3</version>
	<scope>test</scope>
</dependency>

五、详解TestNg中注解(非全部)

在这里插入图片描述

5.1 特殊注意点:
1、@DataProvider注解下name属性如果不指定,则方法名被自动指定为数据驱动名,关联到@Test注解下的dataprovider属性;如果指定name属性,则指定名即为数据驱动名。
2、@DataProvider注解下的parallel属性默认为false,即数据驱动非并行;如果设置为true意思为并行,即至少2个线程以上,不建议使用并行,具体要根据实际业务场景定。
3、@Test注解下的dataprovider属性与@DataProvider注解下name属性保持一致;数据驱动返回类型一定是一个二维数组型,二维数组有n列,则被关联的@Test方法就有n个入参,二维数组有m行,则@Test方法就运行m次。
4、@Test注解下的dataproviderclass属性称为数据驱动测试类。测试类下有多个static属性的数据驱动方法。如果业务场景中存在多个数据源,则需要定义数据驱动类。
5、@Test注解下的groups和dependsOnGroups是组合使用的。一个@Test方法下可以有多个groups分组,写法是:
	@Test(groups={
   "peopel","students"})
dependsOnGroups属性下可以添加多个groups。且@Test注释的方法名需要人工干预排序。这两个属性可以解决方法之间的依赖。
6、@Test注解下dependsOnMethods属性也可以解决方法之间的依赖,可以添加依赖多个方法。且@Test注释的方法名需要人工干预排序。
7、@Test注解下priority属性可以控制方法的运行顺序,属性值越小则优先运行。也可以解决方法之间的依赖问题。
8、@Test注解下enable属性,设置为true则方法运行;设置为false则跳过该方法。
9、其中@Test注解下的invocationCount、invocationTimeOut、threadPoolSize、timeOut、successPercentage这些属性多少和性能沾点边,可以组合使用,分别代表的含义是:
	invocationCount 指定的@Test方法运行的次数;
	invocationTimeOut 需要和invocationCount一起使用,否则不生效。指在规定的invocationTimeOut时间内完成invocationCount运行次数,否则报超时错误;
	threadPoolSize 需要和invocationCount一起使用,否则不生效。用threadPoolSize的值的线程数量完成invocationCount指定的运行次数;
	timeOut 指@Test方法最长运行耗时时间,若在规定时间范围内没有完成运行,则报超时错误;
	successPercentage 指@Test方法运行成功百分比,建议和invocationCount一起使用。
5.2 示例
1、数据驱动类
class StaticProvider{
   
	  @DataProvider(name = "111")
	  public static Object[][] dp1() {
   
		  Object[][] data = {
   {
   1,"a","wwww"},{
   2,"b","eeeeeee"},{
   3,"c","kkkkkk"}};
		  return data;
	  }
	  
	  @DataProvider(name = "222")
	  public static Object[][] dp2() {
   
		  Object[][] data = {
   {
   11,"a","wwww"},{
   2,"b","eeeeeee"},{
   3,"c","kkkkkk"}};
		  return data;
	  }
	  
	  @DataProvider(name = "333")
	  public static Object[][] dp3() {
   
		  Object[][] data = {
   {
   111,"a","wwww"},{
   2,"b","eeeeeee"},{
   3,"c","kkkkkk"}}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值