电商数据网站有哪些,软件公司名字,网站开发需求报告,新开传奇网站发布网单职业哈喽大家好#xff0c;我是小浪。那么今天是一期基于JavaTestNG测试框架的入门教学的博客#xff0c;从只会手工测试提升到自动化测试#xff0c;这将对你的测试技术提升是非常大的#xff0c;有助于我们以后在找工作、面试的时候具备更大的竞争力~ 文章目录 一、什么是T…哈喽大家好我是小浪。那么今天是一期基于JavaTestNG测试框架的入门教学的博客从只会手工测试提升到自动化测试这将对你的测试技术提升是非常大的有助于我们以后在找工作、面试的时候具备更大的竞争力~ 文章目录 一、什么是TestNG二、如何创建第一个TestNG用例三、TestNG的常用注解四、以XML的方式运行TestNG五、以Maven的方式运行TestNG 一、什么是TestNG
在学习之前我们首先来了解一下什么是TestNG
TestNG是一个基于Java的测试框架它是JUnit的替代品可以更好地满足开发人员和测试人员的需求。TestNG的优势包括
1.更好的注释TestNG允许使用更多的注释来描述测试这使得测试代码更加易读和易于维护.
2.更好的分组TestNG允许将测试用例分组这使得测试用例的管理更加容易.
3.更好的依赖性管理TestNG允许测试用例之间建立依赖关系这使得测试用例的执行更加灵活.
4.更好的参数化TestNG允许在测试用例中使用参数这使得测试用例的复用更加容易.
5.更好的报告TestNG生成的测试报告更加详细和易读.
二、如何创建第一个TestNG用例
OK那了解了什么是TestNG之后,博主这里借助IDEA来演示打印第一个单元测试用例~
1、首先我们需要下载一个编译器IDEA(别告诉我你连IDEA都没有下载~),新建一个Maven项目
2、找到pow.xml文件将以下配置文件的代码复制进去等待IDEA加载~
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdorg.example/groupIdartifactIdMavenTest/artifactIdversion1.0-SNAPSHOT/versiondependenciesdependencygroupIdorg.testng/groupIdartifactIdtestng/artifactIdversion6.10/version/dependency/dependencies
/project3、建好了项目之后我们需要去下载一个插件Create TestNG XML,File-settings-Plugins搜插件的名字~ 4、java文件下面新建一个类Test1,鼠标选中类名按altenter选择Create Test.
5、选择TestNG,然后取一个类名这里我就取得Test1之后大家可以在test目录下面看到我们刚才取的类名,注意类名必须以大写的Test结尾~
6、写上第一个测试用例的代码这里我就直接打印了大家可以自行选择喜欢的内容进行输出~ Testpublic void Test(){System.out.println(这是一个TestNG测试框架case);}运行结果我们可以看到运行成功了
三、TestNG的常用注解
1、BeforeClass在调用当前类的第一个测试方法之前运行在当前类中仅运行一次
BeforeClass
public void BeforeClass(){System.out.println(在调用当前类的第一个测试方法之前运行在当前类中仅运行一次);
}2、AfterClass:在调用当前类的第一个测试方法之后运行在当前类中仅运行一次
AfterClass
public void AfterClass(){System.out.println(在调用当前类的第一个测试方法之后运行在当前类中仅运行一次);
}3、BeforeTest:注释的方法将在属于test标签内的所有类的所有测试方法运行之前运行一个test标签内可能有多个class类在当前test标签内仅运行一次~ BeforeTestpublic void BeforeTest(){System.out.println(这是BeforeTest的用例case);}4、AfterTest:注释的方法将在属于test标签内的所有类的所有测试方法运行之后运行一个test标签内可能有多个class类在当前test标签内仅运行一次~ AfterTestpublic void AfterTest(){System.out.println(这是AfterTest的用例case);}运行结果(注意比较优先级) 5、BeforeSuite:在该套件的所有测试运行之前运行仅运行一次 BeforeSuitepublic void BeforeSuite(){System.out.println(这是BeforeSuite的用例case);}6、AfterSuite:在该套件的所有测试运行之后运行仅运行一次 AfterSuitepublic void AfterSuite(){System.out.println(这是AfterSuite的用例case);}7、BeforeMethod:注释方法将在当前类中的每个测试方法之前运行 BeforeMethodpublic void BeforeMethod(){System.out.println(这是BeforeMethod的用例case);}8、AfterMethod:注释方法将在当前类中的每个测试方法之后运行 AfterMethodpublic void AfterMethod(){System.out.println(这是AfterMethod的用例case);}9、BeforeGroups:配置方法将在组列表运行之前运行。 此方法保证在调用属于这些组中的任何第一个测试方法之前运行
10、AfterGroups:此配置方法将在组列表运行之后运行。该方法保证在调用属于这些组的任何最后一个测试方法之后运行 Test(groups groups1)public void Test1(){System.out.println(这是groups1的用例Test1);}Test(groups groups1)public void Test11(){System.out.println(这是groups1的用例Test11);}Test(groups groups2)public void Test2(){System.out.println(这是groups2的用例Test2);}Test(groups groups2)public void Test22(){System.out.println(这是groups2的用例Test22);}//只对group1有效即Test1和Test11BeforeGroups(groupsgroup1)public void BeforeGroups(){System.out.println(这是BeforeGroups的用例case);}//只对group2有效即Test2和Test22AfterGroups(groupsgroup2)public void AfterGroups(){System.out.println(这是AfterGroups的用例case);}运行结果 由此可以得出TestNG运行时执行顺序BeforeSuite-BeforeTest-BeforeClass-BeforeGroups.
11、Parameters:描述如何将参数传递给Test方法
12、DataProvider:标记一种方法来提供测试方法的数据。 注释方法必须返回一个Object [] []其中每个Object []可以被分配给测试方法的参数列表。 要从该DataProvider接收数据的Test方法需要使用与此注释名称相等的dataProvider名称
四、以XML的方式运行TestNG
那么TestNG支持xml的格式运行那么如何操作呢
1、首先我们先来认识一些xml中的标识符以及它们的含义
suite 套件根标签通常由几个test组成 属性 name 套件的名称必须属性 verbose 运行的级别或详细程度 parallel 是否运行多线程来运行这个套件 thread-count 如果启用多线程用于指定开户的线程数 annotations 在测试中使用的注释类型 time-out 在本测试中的所有测试方法上使用的默认超时时间 test 测试用例name为必须属性 classes 用例中包含的类子标签为class nameclassName; class 测试类其中属性name为必须属性; packages 用例中包含的包包中所有的方法都会执行子标签为package namepackageName; package 测试包name为必须属性 methods 指定测试类中包含或排除的方法子类为include,exclude; include 指定需要测试的方法name为必须属性 exclude 指定类中不需要测试的方法name为必须属性 groups 指定测试用例中要运行或排除运行的分组子标签为run,run下包含include,exclude标签include,exclude的name指定运行、不运行的分组
2、在项目下新建一个testng.xml文件 代码模板如下
!DOCTYPE suite SYSTEM https://testng.org/testng-1.0.dtd suite nameSuite1 verbose1 test nameNopackage classesclass nameNoPackageTest //classes/testtest nameRegression1classesclass nametest.sample.ParameterSample/class nametest.sample.ParameterTest//classes/test
/suite3、在test目录下面新建一个类Test3Test
import org.testng.Assert;
import org.testng.annotations.Test;
import org.testng.annotations.*;public class Test3Test {Test(groups group1)public void testC03() {System.out.println(testC03);Assert.assertTrue(true);}Test(groups group1)public void testC04() {System.out.println(testC04);Assert.assertTrue(true);}Test(groups group2)public void testC05() {System.out.println(testC05);Assert.assertTrue(true);}BeforeTestpublic void beforeTest() {System.out.println(beforeTest);}AfterTestpublic void afterTest() {System.out.println(afterTest);}BeforeClasspublic void beforeClass() {System.out.println(beforeClass);}AfterClasspublic void afterClass() {System.out.println(afterClass);}BeforeSuitepublic void beforeSuite() {System.out.println(beforeSuite);}AfterSuitepublic void afterSuite() {System.out.println(afterSuite);}BeforeGroups(groups {group1, group2})public void beforeGroups() {System.out.println(beforeGroups);}AfterGroups(groups {group1, group2})public void afterGroups() {System.out.println(afterGroups);}BeforeMethodpublic void beforeMethod() {System.out.println(beforeMethod);}AfterMethodpublic void afterMethod() {System.out.println(afterMethod);}
}
4、修改testng.xml文件中的代码右键运行testng.xml文件
!DOCTYPE suite SYSTEM http://testng.org/testng-1.0.dtd suite nameSuite parallelnonetest nameTestclassesclass nameTest3Test//classes/test
/suite运行结果 五、以Maven的方式运行TestNG
1、首先我们需要下载一个插件Maven Helper:
2、其次需要在pow.xml中配置以下依赖代码粘贴后需要点击IDEA右上角的Maven刷新按钮这样代码就不会出现爆红了~
dependencies//注意这个依赖放在这个dependencies标签里面dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-api/artifactIdversion2.8/version/dependency/dependenciesbuild//build标签单独开一行pluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-surefire-plugin/artifactIdversion2.19/versionconfigurationsuiteXmlFilessuiteXmlFiletestng.xml/suiteXmlFile//该文件位于工程根目录时直接填写名字其它位置要加上路径。/suiteXmlFiles/configuration/plugin/plugins/build代码不爆红就说明没有问题~ 3、右键Maven点击test即可运行Maven
4、运行结果 注意事项Maven Helper这个插件的语法为 suiteXmlFilesrc/test/resources/testNGFilesFolder/${testNgFileName}.xml/suiteXmlFile 标签里是测试代码的路径~ OK那么以上就是本篇博客的所有内容了下篇博客我们继续更新TestNG的其他知识点感兴趣的小伙伴可以点个star支持一下关于秋招实习可添加下方v咨询欧~