一个专做特卖的网站,千鸟云网站建设,杭州网站建设那家好,扬州学做网站培训多少钱近期接触到了一个比较全面的基于Java的接口自动化测试框架#xff0c;作为一名Java小白#xff0c;所以打算研究一下#xff0c;顺带学习学习Java#xff0c;该测试框架的逻辑控制层使用的HttpClient TestNG。在本期中#xff0c;给大家分享一下TestNG测试框架的基础知识… 近期接触到了一个比较全面的基于Java的接口自动化测试框架作为一名Java小白所以打算研究一下顺带学习学习Java该测试框架的逻辑控制层使用的HttpClient TestNG。在本期中给大家分享一下TestNG测试框架的基础知识使用TestNG的优点TestNG的基本注解如何使用套件、忽略、异常、依赖、参数化、超时等测试该如何进行。一、TestNG基本介绍TestNG是Java中的一个测试框架是一个目前很流行实用的单元测试框架有完善的用例管理模块配合Maven能够很方便管理依赖第三方插件。使用TestNG可以做功能、接口、单元、集成的自动化测试最常见的是结合selenium做功能自动化测试它使用Java注释去写测试方法。测试人员一般用TestNG来写自动化测试开发人员一般用Junit写单元测试TestNG适合测试人员使用的原因比Junit涵盖功能更全面的测试框架Junit更适合隔离性比较强的单元测试TestNG更适合复杂的集成测试。编写一个测试的过程包含以下步骤编写测试的业务逻辑并在代码中插入TestNG annotation将测试信息添加到testng.xml文件或build.xml中运行TestNG。二、TestNG使用TestNG应用上相对来说比较简单把它的注解理解了相当于会了一大半了。1. 在Maven中引用TestNG使用Maven作为项目管理工具需要在pom.xml中添加以下依赖将groupId、artifactId和version引进来后就可以使用Maven框架进行自动下载和使用。 org.testng testng 6.102. 在IDEA中创建module新建一个文件夹用于该项目AutoTest。使用IntelliJ IDEA打开该文件夹(File—open)在该文件夹上面点击右键—New—module(module意思是它都归这个工程管)—选择Maven点击Next—填写GroupId和ArtifactId点击Next—创建了一个module点击Finished(GroupId一般是域名的反写也作为项目中类的包名是main目录里java的目录结构ArtifactId工程名也就是根文件夹名)创建了一个module被认为工程的标志根文件夹名前右下角为蓝色的java前也是蓝色的resources资源目录文件是图中的文件标志工程目录结构如图所示3. 最基本的注解TestModule已创建完毕后就可以开始了解TestNG的基本注解啦。1)在java文件上右击—new—Package创建一个包包名com.test.testng。(在公司开发一个项目的时候每个功能模块肯定是放在某个包下一般包名是以最高域名.公司名/个人名.模块名)2)在包中创建一个类这个类就是为了运行TestNG里的代码创建的。点击包右键—new—Java Class输入类名BasicAnnotation—OK3)在pom中引用TestNG。TestNG与IDEA集成的比较好的一点是假设在pom中没引用TestNG也会进行提示。4)创建一个方法testCase1在方法前加“Test”是最基本的注解用来把方法标记为测试的一部分。在Test为红色时说明没有import对应的方法在此我们可以进行设置一下自动优化导入包File—settings—Editor—General—Auto Import将下图中1和2 进行勾选1:IDEA将在我们写代码的时候自动棒我们导入需要用到的包但是有多个同名的类调用不同的包还是需要手动(AltEnter)设置。2IDEA将在我们写代码的时候自动帮我们优化导入的包比如自动去掉一些没有用的包。4. 注解之BeforeMethod和AfterMethod除了最基本的注解外还有标签可以进行标注在这个方法之前或者之后运行。创建两个方法beforeMethod和afterMethod, 同时再创建一个testCase2方法—Run类输出内容可以更直观理解。注输入sout回车即可输出System.out.println()。可以看到BeforeMethod/AfterMethod在每个方法运行之前/之后都会运行一次。在以后写测试用例时在测试方法之前/之后必须要运行的都可以写到BeforeMethod/AfterMethod里。5. 注解之BeforeClass和AfterClassBeforeClass和AfterClass是在类运行之前和之后的注解。创建两个方法beforeClass和afterClass—Run类如下图所示BeforeClass和AfterClass使用场景举例在类运行前是否需要变量赋值、初始化对象等写完后其它方法里就都可以使用了。6. 注解之BeforeSuite和AfterSuite在注解中执行顺序非常非常重要。测试套件注解创建两个方法beforeSuite和afterSuite—Run类结果如下图所示。根据结果可以看到Suite把class包裹起来了说明类在运行之前运行了SuiteSuite可以包含多个Class类是属于某个套件之下的。7. 套件测试举例讲解一下TestNG里的套件测试虽然在TestNG里套件测试用到的相对较少但是也要了解下滴步骤如下1) 之前在java文件中创建了一个包com.test.testng现在在该包里新建一个包管理所有套件测试代码(New—PacKage包名可以起为suite)2) 在suite里创建一个类(New—Java ClassSuiteConfig-配置类)SuiteConfigs 为了进行所有测试套件的配置在这儿写测试的套件之前需要运行的方法。3) 再在suite包中创建一个类以登录测试为例(New— Java ClassLoginTest-登录成功-逻辑控制类)在这儿写测试主要Test标签下面包含的那些方法。4) 在resources目录下创建testng.xml配置文件一般来说配置文件叫tesng.xml但是不是必须的也可以叫其它名。testing.xml其实是标准的xml文件实际上与SuiteConfig和LoginTest是有关联关系的。5) 打开SuiteConfig类创建两个方法beforeSuite和afterSuite。6) 再在Suite包中创建一个类PayTest-支付成功与LoginTest相当于一个测试组的比较好区分。到此为止目录结构如下图所示7) 打开LoginTest写入方法loginSogouMall登录成功。8) 打开PayTest写入方法paySuccess支付成功。9) 打开配置文件testng.xml根目录为suite写入内容如下图所示此处需要注意test标签必须定义一个名字。Run testing.xml后根据运行结果可以看到执行顺序为1-2-3-4。8. 忽略测试忽略测试是指本次测试执行中不想要执行的测试方法示例如下。1)在包com.test.testng中创建一个类New-Java ClassIgnoreTest2)在IgnoreTest类中创建两个方法ignore1和ignore2根据输出结果可以看到在Test标签后加入属性(enabledfalse)则可以忽略此测试方法默认情况下enabled为true。9. 组测试中的方法分组测试首先介绍一下方法上分组将方法进行归类。1) 在包com.test.testng新建一个包管理所有套件测试代码(New—PacKage包名可以起为groups)2)在groups包中新建一个类(New—Java Class方法名GroupsOnMethod)3) 创建4个方法如下图中所示注意需要在Test标签中添加属性groups4) 再创建2个方法如下图所示在BeforeGroups和AfterGroups标签后需要加入分组的名字。5) 运行类运行结果为6) 通过此种做法可以将很多个测试方法归类到一个组中之后进行相关操作。10. 组测试中的类分组测试上节说的组分组本节介绍一下类分组将整个类文件进行分组。1)在groups包中创建3个类GroupsOnClass1GroupsOnClass2GroupsOnClass32)在GroupsOnClass1中创建2个方法如下图所示此时需要注意的是Test标签是写在类上的(标签也是可以写在类上面的)之后添加属性groups3) 在GroupsOnClass2中创建2个方法与GroupsOnClass1相似相当于两个班的学生4) 在GroupsOnClass3中创建2个方法如下图所示5)在resources目录中创建一个xml文件GroupsOnClass.xml用该文件进行驱动内容和运行结果如下图所示运行了所有的组6) 只运行一部分组书写及配置方法如下图所示结果只运行groups名字为stu的类。11. 异常测试在我们期望结果为某一个异常的时候会用到异常测试。比如传入某些不合法的参数程序抛出异常。1)新建一个类ExpectedException2)创建2个方法如下图所示异常测试中使用到了Test标签中的expectedExceptions属性根据结果可以看到成功了一条(即方法2)需要在方法中加入语句throw new RuntimeException()需要注意的是该语句后的内容不运行所以一定要注意顺序。12. 依赖测试TestNGINX依赖方法是指本个测试方法执行的时候依赖于其它方法。举例说明1)创建一个Java类DependTest;2)创建2个方法test1和test2其中test2依赖于test1即test1要先执行如果test1失败则test2不执行。此处用到Test标签的属性dependsOnMethods具体写法如下图所示只运行test2结果可以看到test1也被执行了3)在test1中加入语句thrownew RuntimeException()抛出异常这时候再运行test2结果会提示1 failed1 ignored。当做依赖测试的时候被依赖的方法若执行失败则依赖的方法就会被忽略掉不再执行实际场景中可以做前置条件的时候使用。13. 参数化测试-xml文件参数化TestNGINX允许在TestMethod以及Before/After类注解、Factory类注解的方法中传入参数。参数传递的方式有两种一种是借助xml文件配置另一种是以编码的方式传递参数。本小结介绍借助xml文件配置的方式。示例1)新建一个包parameter(New-Package)2)新建一个类ParameterTest类中新建一个方法parameTest如下图所示此处用到了一个新标签Parameters3)在resources目录下新建一个xml配置文件用于传参内容如下图所示即可运行成功。14. 参数化测试-DataProvider参数化上小结讲述了如何通过xml传递参数本节讲述另一种方式。1) 新建一个类DataProviderTest2) 新建两个方法testDataprovide和ProviderDataProviderData方法提供数据来源返回形式Object。注意testDataprovide方法上Test标签中dataProvider的属性值与ProviderData方法上DataProvider标签中name的属性值要一致。以上就是使用DataProvider如何传数据除此之外DataProvider支持根据方法进行参数传递通过不同的方法传递不同的参数示例新建三个方法test1、test2和methodDataTestmethodDataTest方法中必须填入Methodmethod代表自动会将test1和test2方法传递进来针对不同的方法名传递不同的参数。15. 超时测试超时测试比较简单主要是使用到Test标签中的timeOut属性单位为毫秒示例1)新建一个类TimeOutTest2)新建两个方法testSuccess和testFail方法一在3000毫秒内给予响应不抛出异常运行成功方法2在2000毫秒内没有得到响应抛出异常运行失败。超时测试使用场景例在测试过程中某一段时间后无反应想跳过则可以使用超时测试。以上就是本次分享的TestNG比较常用的一些知识希望对大家有帮助~~欢迎添加我们的搜狗测试微信号与我们一起聊聊测试。