当前位置:网站首页 > 编程语言 > 正文

testng用例执行顺序(@test执行顺序)



既然是讨论执行顺序问题,那么用例肯定是批量执行的,批量执行的方法有mvn test、直接运行testng.xml文件,其中直接运行testng.xml文件的效果与pom文件中配置执行testng.xml效果是一样,所以本次只讨论mvn test 批量运行方式

编写一些测试用例,单纯为了测试,内容只进行输入,没有任何逻辑。 

 


   要使用mvn test方式批量运行用例,需要在pom文件中配置以下内容

 

如果pom文件只是进行了上步骤的配置,那么执行mvn test,用例是多线程无序执行的,如果要按顺序执行要配置为单线程,在<plugin>标签内增加如下配置

 

再次执行mvn test,我们会发现用例是单线程,按一定顺序执行的。但是是按照字母a-z的顺序执行的,其实这个排序对我们来说用处不大,我们写用例要求的是看名知意,不可能按照这个顺序来写。

 testng提供了丰富的注解功能,priority标示用例执行的优先级,默认值为0,值越大优先级越低。比如:

 

该注解对同一个类的多个方法也是适用的,比如:

 

那么我们就会想如果每个类中都有多个方法,且优先级是不同的,那么执行顺序又是怎么样的?比如:

 

这种情况我们从结果可以看出并没有按照类的顺序执行,而是按照priority设置的等级高低,去执行的类。那么这个问题的原因是什么?有没有办法类按照顺序执行同时类中方法也按照顺序执行?这个问题我们放到后面讨论解决方法。

 

同样该方法适用于类的方法,比如:

 

 该方法只适用于同一个类的不同方法间,不能跨类适用。举例如:

 

    pom文件中在maven-surefire-plugin插件增加配置如下:

 

testng.xml作为testng的灵魂,提供了很强大的配置功能,其它使用方式可以自己百度。本问只讨论类型的执行顺序问题。tesng.xml配置如下:

 

执行mvn test 结果如下:

Second test

first test

third test

从结果可以看出,默认是按照顺序执行。其实在suite和test标签分别有preserve-order控制各自子标签的执行顺序,该值默认true。

如果我们把该值设置为false,可以看到用例不再按照配置的顺序执行了。如下:

 

执行mvn test命令,结果如下:

first test

Second test

third test

那么我们开始思考,如果testng.xml中设置了preserve-order= “true”,同时我们也设置了priority,那么执行顺序会怎么样?比如:我们只在SecondTest上加了priority=1,其它保持不变。

 

mvn test执行结果如下:

Second test

first test

third test

Second test1

third test1

从结果可以看出同一priority优先级方法,按照配置的顺序执行。也即priority的优先级>preserve-order.那么我们回到2中的问题,原因是因为priority是在testng开始的时候全部加载进去,如果想实现按顺序执行完一个类的方法后,再执行另外一个类的方法,就要去改变方法的priority值,可以通过监听的方式实现。代码如下:

 

testng.xml配置如下:

 

mvn test执行命令结果如下:

Second test

Second test1

first test

third test

third test1

这个时候我们看到按照配置的顺序执行class并且class中的方法也是按照priority优先级执行的。

 

 

 

 

参考文章:

https://www.cnblogs.com/leohou/p/11694807.html

到此这篇testng用例执行顺序(@test执行顺序)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 根据域名查ip命令(根据域名查ip命令是什么)2025-03-25 08:27:08
  • pem文件(pem文件是干嘛的)2025-03-25 08:27:08
  • 安装信息功能(安装信息怎么安装)2025-03-25 08:27:08
  • 预适应训练仪功效与作用(预适应训练仪是什么?)2025-03-25 08:27:08
  • git怎么用命令pull代码(git pull命令详解)2025-03-25 08:27:08
  • 单片机程序(单片机程序编写)2025-03-25 08:27:08
  • 星露谷黄金钟怎么得(星露谷黄金时钟值不值得买)2025-03-25 08:27:08
  • Edge修复和重启都无法打开Win11(win10 edge无法打开)2025-03-25 08:27:08
  • ip地址换了手机还一样吗(手机ip地址换电话号码会改变吗)2025-03-25 08:27:08
  • 双系统直接删除linux开不了机(win10双系统删除linux启动不了)2025-03-25 08:27:08
  • 全屏图片