您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > AI人工智能 > TestNG测试ppt精讲
分享主题内容TestNG测试TestNG介绍TestNG介绍TestNG介绍一、TestNG1、开源自动化测试框架2、可以从单元测试到集成测试3、测试数据不用写死在测试代码中,方便管理测试数据4、灵活的运行时配置5、支持多线程测试二、TestNG主要测试步骤1、测试和编写业务逻辑,在代码中插入TestNG的注解2、添加一个testng.xml文件或build.xml中在测试信息(例如类名,您想要运行的组,等..)3、运行TestNG.TestNG基本注解@BeforeSuite注解的方法将只运行一次,运行所有测试前此套件中。@AfterSuite注解的方法将只运行一次此套件中的所有测试都运行之后。@BeforeClass注解的方法将只运行一次先行先试在当前类中的方法调用。@AfterClass注解的方法将只运行一次后已经运行在当前类中的所有测试方法。@BeforeTest注解的方法将被运行之前的任何测试方法属于内部类的test标签的运行。@AfterTest注解的方法将被运行后,所有的测试方法,属于内部类的test标签的运行。@BeforeMethod注解的方法将每个测试方法之前运行。@AfterMethod被注释的方法将被运行后,每个测试方法。@Test标记一个类或方法作为测试的一部分TestNG执行顺序如xml文件:suitename=Suite1testname=test1preserve-order=trueclassesclassname=TestngAnnotation/methodsincludename=TestNgLearn1/includename=TestNgLearn12//methods/class/classes/test/suitebeforeSuitebeforeTestbeforeClassbeforeMethodtestcase1afterMethodbeforeMethodtestcase2afterMethodafterClassafterTestafterSuiteTestNG套件属性属性描述name此套件的名称。这是一个强制性的属性verbose这个运行级别或冗长parallel由TestNG运行不同的线程来运行此套件thread-count使用的线程数,如果启用并行模式time-out默认的超时时间,将用于本次测试中发现的所有测试方法TestNG并行执行parellel可以并发执行tests,classes,methods如下面并发执行方法TestNG并行执行testn.xml文件运行结果:TestNG多线程执行方法测试方法是通过在@Test注解中配置threadPoolSize这个属性来进入多线程模式的。threadPoolSize被设为3,这就说明了该测试方法将会在三个不同的线程中同时执行;invocationCount配置的是该测试方法应被执行的总次数;timeOut配置的是每次执行该测试方法所耗费时间,超过则测试失败TestNG忽略测试有时,我们的代码是没有准备好,如果测试用例写入到测试方法/代码将无法运行,在这种情况下,@Test(enabled=false)有助于禁用此测试案例。测试方法是标注了@Test(enabled=false),那么并不是已经准备好测试的测试用例是绕过的TestNG忽略测试TestNG组测试组指定testng.xml文件使用groups标签。它可以发现无论是根据test或suite标签。组指定suite标签适用于所有的的test标签下方。TestNG组测试?xmlversion=1.0encoding=UTF-8?!DOCTYPEsuiteSYSTEM=Suite1testname=test1groupsrunincludename=checkintest//run/groupsclassesclassname=GroupTestExample//classes/test/suiteTestNG异常测试TestNG跟踪异常处理代码提供了一个选项。可以测试是否需要代码抛出异常或不抛出。@Test注释expectedExceptions参数一起使用。publicclassExpectedExceptionTest{@Test(expectedExceptions=ArithmeticException.class)publicvoidtestExceptions(){inta=1;intb=0;intc=a/b;}TestNG方法或组依赖dependsOnMethods,dependsOnGroups有时候,你可能需要在一个特定的顺序调用方法在测试案例,或你想分享一些数据和方法之间的状态。TestNG支持这种依赖测试方法之间的显式依赖它支持声明。1、强制依赖:某个测试用例之前需要执行的依赖链中如果有一个失败,那么接下来所有的测试都不会被执行,测试结果中会显示跳过测试2、顺序依赖(软依赖):无论被依赖的方法是否出现异常,后续的方法都会被执行,通过alwaysRun=“true”来配置TestNG方法或组依赖方法依赖TestNG方法或组依赖组依赖(顺序依赖)TestNG参数化一、@Parameters(支持数据类型String、int/Integer、boolean/Boolean、byte/Byte、char/Character、double/Double、float/Float、long/Long、short/Short)1、创建测试类2、创建testng.xml文件importorg.testng.annotations.Parameters;importorg.testng.annotations.Test;publicclassParameterizedTest1{@Test@Parameters({myName})publicvoidparameterTest(StringmyName){System.out.println(Parameterizedvalueis:+myName);}}TestNG参数化testng.xml文件:?xmlversion=1.0encoding=UTF-8?!DOCTYPEsuiteSYSTEM=Suite1testname=test1parametername=myNamevalue=manisha/classesclassname=ParameterizedTest1//classes/test/suiteTestNG参数化注意:1、xml参数被已在注解中出现的相同顺序映射到Java参数中,如果参数熟练不匹配testNG将发生错误;2、参数是有范围的,在testng.xml文件中,可以在suite或test标签下声明参数,如果两个参数名相同,test标签下定义的优先TestNG参数化二、@DataProvider需要传递复杂参数,或者参数需要从Java中创建(如复杂对象,从属性文件或者数据库中读取的对象),可以使用DataProvider来给需要的测试提供参数。所谓数据提供者,就是一个能返回对象数组的方法,并且这个方法被@DataProvider注解标注:TestNG参数化二、@DataProviderTestNG参数化测试类TestNG参数化testng.xml文件TestNGtest-outputTestNGtest-output运行失败的用例可以再重新测试,运行testng-failed.xml
本文标题:TestNG测试ppt精讲
链接地址:https://www.777doc.com/doc-6972754 .html