TestNG执行测试用例的方法
2026/4/23 21:28:04 网站建设 项目流程

TestNG是一个非常好用d自动化测试框架,对于经常使用seleniumweb端UI测试的童鞋来说是个不错的工具。

具备基本常识的测试童鞋们,可能需要知道存在即合理,存在即有用的道理。任何一个工具,或者一件事的存在如果令人得不到益处,那么是不会有人继续使用的。这个常识基本上人人都懂。

自动化测试,TestNG是个非常好用的框架。在实际项目中,会有成千上百个测试用例进行执行,这时候需要用到并发执行测试。在TestNG中,提供了很好的并发执行的方法。下面从4个方面来理一下:

TestNG对并发执行的处理。

1. TestNG并发执行测试的实现方法【Suite.xml, testng.xml etc 】

2. TestNG并发执行测试的测试用例执行顺序控制[ preserve-order, priority ]

3. TestNG并发执行测试用例的优先级控制 [ priority = 0, 1, 2, 3, 4 ....]

4. 设置TestNG对某些测试用例作为选测或者忽略测试的控制【optional 】

下面详细具体来说。

1. TestNG里有suite的概念,即可以把多个测试用例放在一个***testng.xml的XML文件中执行,里面有定义好的要测的测试用例。举个栗子。

<suite name="Test-class Suite" parallel="tests" thread-count="2"> <test name="test-method One"> <parameter name="test-name" value="test-method One" /> <classes> <class name="testngcase.ParallelSuiteTest" /> </classes> </test> <test name="test-method Two"> <parameter name="test-name" value="test-method Two" /> <classes> <class name="testngcase.ParallelSuiteTest" /> </classes> </test> </suite>

在测试项目目录下创建xml文件,设定好要测试的测试用例,如上码好,不要遗漏。同时,这里需要在类方法里有对应的@BeforeTest注解,和@Parameters({"param-name"})来完成测试用例到XML文件的

照应关系,注意param-name必须跟xml文件里的parameter name值 1 1对应。好了,这样就完成一个并发用例的执行,右键Run As TestNG class即可。

2. 如果想要进一步的对测试套集里的测试用例执行顺序进行限定和设置的话,那么可以用到TestNG的另一个属性preserve-order, 当preserve-order="true", 表示测试用例按照XML文件里所列的顺序进行顺序执行,当preserve-order="false"时,表示测试用例不会按照XML文件里的顺序进行顺序执行,即会有乱序执行。

<xml version="1.0" encoding="UTF-8" > <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="test_testng"> <test name="test" preserve-order="true"> <classes> <class name="testngcase.ParallelClassesTestOne"></class> <class name="testngcase.ParallelClassesTestTwo"></class> </classes> </test> </suite>

如上一个使用preserve-order来控制测试用例执行的顺序的xml文件,实际执行的时候,将会按照上面给定的顺序1次执行ParallelClassesTestOne, ParallelClassesTestTwo两个测试用例。

3. 如果还想有其他的自如控制用例执行顺序的需求,那么TestNG提供了一个priority关键字 ,可以自行设定。具体见栗子。

@Test(priority=1) public void testMethodOne() { long id=Thread.currentThread().getId(); System.out.println("Sample test-method One. Thread id is:"+id); } @Test(priority=2) public void testMethodTwo() { long id=Thread.currentThread().getId(); System.out.println("Sample test-method Two. Thread id is:"+id); }

上面两个测试方法上分别在@Test后加了priority=*的设定,通过设定priority的值来控制方法执行的顺序,值越大,执行顺序越靠后。

4. 其他有助于测试用例的执行的关键字,对于执行用例时因为各种因素可能出现的状况而不能执行时,可以采用在@Test(enabled=false)设定来忽略某些测试方法。

@Test(enabled=false) public void testMethodTwo() { long id=Thread.currentThread().getId(); System.out.println("Sample test-method Two. Thread id is:"+id); }

这样做了标注后就达到里忽略此测试方法的目的。

另外一个关键字,@Optional通常用在@Parameters相关的测试方法下,对于在xml文件中没有对参数值给出值的参数,给出一个备选的值,以免执行出现问题。

最后:下方这份完整的软件测试 视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​​件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询