![](https://img-blog.csdnimg.cn/2021030817541542.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
TestNG
文章平均质量分 85
一种流行测试框架
饕餮海
路漫漫其修远兮 吾将上下而求索
微信公众号:仰望天空的蜗牛
展开
-
TestNG初识
前言你接触到的有哪些测试框架?在工作中使用的是什么测试框架呢?可以描述一下你使用的测试框架吗?摘要TestNG(Test Next Generation)是普遍使用的开源自动化测试框架,借鉴了JUnit和NUnit等测试框架概念,包含优化扩展了很多的功能,包括注解annotation、分组group、依赖depend、排序和参数化等功能。测试工程师可以专注于自动化测试用例和测试脚本...原创 2019-01-26 12:48:37 · 238 阅读 · 1 评论 -
TestNG注解-@Test
引言TestNG有很强大的注解功能,在这里要注意注解与注释的区别!注解是一种元数据,能够被脚本编译所识别,起到一定的控制作用。注释只是代码句或者一段代码的注释说明,本身并不影响代码的编译和执行,只是增强不同的开发人员对代码功能的有效理解。正文本文将结合第一个TestNG测试类,来介绍@Test 注解首先附上文中演示例子的目录结构1、创建被测试类项目目录src/m...原创 2019-01-26 13:43:23 · 3915 阅读 · 0 评论 -
TestNG断言
引言什么叫断言?断言起到了什么作用?怎样使用断言?正文本文中示例目录结构1、被测试类的编写;ClassToBeTested.java新增加两个方法,代码如下public class ClassToBeTested { public int add(int a, int b){ return a+b; } public Strin...原创 2019-01-26 23:13:32 · 5067 阅读 · 1 评论 -
TestNG软断言
引言什么叫做软断言?软断言与断言有什么区别?软断言适用于什么场景?怎样使用软断言?正文1、测试类编写;public class TestSoftAssert { @Test public void testSoftAssert(){ System.out.println("这是一个软断言示例-------->>>>"); ...原创 2019-01-27 00:33:59 · 1204 阅读 · 0 评论 -
TestNG注解·方法和类注解
引言本文介绍@BeforeMethod、@AfterMethod、@BeforeClass、@AfterClass四个注解正文@BeforeMethod —— 在测试类中的每一个@Test注解方法运行之前运行一次;@AfterMethod —— 在测试类中的每一个@Test注解方法运行之后运行一次;@BeforeClass —— 在测试类中的所有注...原创 2019-01-27 09:55:52 · 452 阅读 · 0 评论 -
TestNG·TestSuite测试套件
引言如何一次运行多个测试类,为了解决这个问题,引入了TestSuite测试套件的概念。不同的测试类可以组装成一个具备测试相关功能的套件,这个套件就叫做TestSuite。比如TestSuite有测试购物基本流程的测试套件,有测试促销的套件,有具备冒烟功能的套件或者具备回归功能的测试套件。至于如何一次运行多个测试类,如何运行TestSuite,请继续浏览下面正文。正文示例中的项目...原创 2019-01-27 12:00:43 · 4605 阅读 · 1 评论 -
TestNG·@BeforeSuite和@AfterSuite注解
引言本文介绍@BeforeSuite和@AfterSuite注解@BeforeSuite 在test suite中的所有test运行之前运行,只运行一次;@AfterSuite 在test suite中的所有test运行之后运行,只运行一次。正文一些场景中,需要把通用的一些功能抽取出来,封装成为一个基类,在基类中应用@BeforeSuite和@AfterSuite注解。1、...原创 2019-01-27 13:22:38 · 4442 阅读 · 1 评论 -
TestNG注解·@BeforeTest和@AfterTest
引言@BeforeTest@AfterTest是针对xml文件中的test标签进行操作。正文@BeforeTest——在xml中的每一个test标签执行前运行;@AfterTest——在xml中的每一个test标签执行后运行。一般与@BeforeSuite和@AfterSuite存在同一个测试类中。举例:<suite name="TestSuite De...原创 2019-01-27 13:49:58 · 7668 阅读 · 1 评论 -
TestNG测试方法执行优先级
前言TestNG的测试方法默认是按照方法名的字母顺序执行的,那么怎么自定义测试方法的执行顺序呢?下面我们将介绍其中的一种方法。正文1、默认的测试方法执行顺序:默认按照测试方法的方法名字母顺序依次执行。public class TestNGPriority { @BeforeClass public void beforeClass(){ Sys...原创 2019-01-31 12:27:30 · 1656 阅读 · 0 评论 -
TestNG测试方法分组执行
前言一个测试类当中有多个测试方法,当你只想执行其中的几个相关的测试方法,该怎么操作呢?我们可以通过设置测试方法分组的方式来解决上述问题。正文1、怎么样进行分组?利用@Test注解的groups属性。(groups = {"xx","xy"})。groups的值可以设置多个,代表该测试方法属于多个分组。public class TestNGGroup { @Befo...原创 2019-01-31 13:26:12 · 1559 阅读 · 0 评论 -
TestNG测试方法的依赖执行
前言特定场景下,测试方法A必须在测试方法B已执行完成的情况下再执行,这个时候就需要应用TestNG提供的依赖功能。正文1、利用@Test注解属性(dependsOnMethods = {"被依赖的方法名"})来确定依赖关系。public class TestNGDependency { //声明被测试类的对象,全部测试方法都可以引用 ClassToBeTested...原创 2019-01-31 14:29:20 · 834 阅读 · 1 评论 -
TestNG测试方法禁用和超时
前言1、当你已经得知某个测试方法有bug,开发人员正在修复中,还不能执行,你又不能删除它,开发修复后还需要用到,这个时候你可以选择禁用此测试方法;2、当测试方法有性能响应时间的要求时,你可以设置测试方法的超时时间,当超过该时间时,该测试方法将判定为执行失败。正文1、测试方法禁用利用@Test注解的enabled属性,设置enabled = false时,该测试方法将被忽略。禁用...原创 2019-01-31 15:00:25 · 846 阅读 · 0 评论 -
TestNG维持测试用例执行顺序
前言xml文件设置维持测试用例的执行顺序;xml文件禁用<test>标签中的测试用例。正文<suite name="preserve enable"> <test name="test1" preserve-order="true"> <classes> <c原创 2019-01-31 15:33:42 · 907 阅读 · 0 评论 -
TestNG读取xml文件中参数
前言如何从TestNG xml文件提供参数给测试方法?哪些场景需要从TestNG xml文件提供参数给测试方法?正文1、TestNG xml文件中定义parameter;使用<parameter>标签<suite name="testngparameter"> <test name="parameterfromxml"> ...原创 2019-01-31 18:12:43 · 1655 阅读 · 0 评论 -
TestNG·并行执行测试用例
前言当测试用例都是独立的,用例之间不存在依赖时,我们可以进行并行设置,并行执行测试用例。并行用例执行的维度有哪些?本文将介绍通过TestNG并行执行case的相关知识点正文1、创建两个测试类 TestNGParallel1.java和TestNGParallel2.javaTestNGParallel1.javapublic class TestNGParallel1...原创 2019-02-01 15:39:01 · 1869 阅读 · 0 评论 -
TestNG创建DataProvider
前言当一个测试方法需要不同的测试数据来进行测试,比如登录的测试方法的验证,需要登录名和登录密码两个参数,需要提供大量的有效性数据和无效性数据从多个方面来测试登录功能,这个时候我们就需要应用到TestNG的@DataProvider注解正文1、利用注解@DataProvider来注明提供参数的方法;@DataProvider(name="xxx")2、测试方法使用参数利用@T...原创 2019-02-01 16:12:48 · 289 阅读 · 0 评论 -
TestNG封装DataProvider数据方法
前言封装DataProvider数据方法,主要目的是分离测试数据和测试方法,方便管理,提高项目的维护效率。正文1、把测试数据单独封装为一个类TestData.javapublic class TestData { @DataProvider(name="para") public Object[][] getData(){ return new O...原创 2019-02-01 16:36:52 · 890 阅读 · 0 评论 -
TestNG·ITestResult接口
前言当测试方法执行后,不管是成功或者是失败了,相应的后续动作的执行,我们可以应用ITestResult接口来进行相关的操作。比如测试方法执行失败了,如何进行截图操作。一般ITestResult接口会和@AfterMethod注解的方法结合使用。因为@AfterMethod注解的方法会在每一个@Test注解的方法会执行,这样我们可以监听到测试方法的执行状态,以便做出相应的动作。正...原创 2019-02-01 17:36:08 · 1133 阅读 · 0 评论 -
TestNG·监听器概念理解
前言初听到监听器,你的理解是什么?我的第一理解是监听器是一种具有监听功能的代码,用于监听某些事件,当事件发生时,监听器会做出相对应的后续动作。至于监听器到底是什么意思,我们接着往下看。正文监听器:监听特定事件发生的封装好的类。分析引起特定事件的具体动作,这些动作都已经封装到了监听器中。针对不同的动作采取相对应的处理方式。通常我们需要做的就是编写针对不同动作采取对应处理方...原创 2019-02-06 09:58:42 · 410 阅读 · 0 评论 -
TestNG监听器·IInvokedMethodListener监听器
前言IInvokedMethodListener监听器正文该监听器中的监听方法会在测试类中的每一个方法执行之前或者之后都会运行。示例中脚本目录结构1、测试类TestNGTestListener1.javapublic class TestNGTestListener1 { @BeforeClass public void setUp(){ ...原创 2019-02-06 10:48:32 · 1116 阅读 · 0 评论 -
TestNG监听器·ITestListener监听器
前言ITestListener监听器主要针对测试方法和xml文件中的test标签来进行相应监控。正文ITestListener监听器封装的方法以及方法的使用规则如下:onTestStart():测试方法开始时才执行此方法。这里测试方法是指@Test注解的测试方法;onTestSuccess():如果测试方法执行成功才执行此方法;onTestFailure():如果测试...原创 2019-02-06 12:45:47 · 1058 阅读 · 0 评论 -
TestNG监听器·ISuiteListener
前言ISuiteListener监听器正文ISuiteListener监听器中主要要重写两个方法:onStart():当suite开始执行时候跑;onFinish():当suite执行完成后跑。原创 2019-02-06 13:01:21 · 657 阅读 · 0 评论 -
TestNG测试报告和日志
前言本文介绍TestNG自带的日志和报告生成功能。正文TestNG日志语句:TestNG自带的日志输出语句Reporter.log(),一般会用此语句代替System.out.println()的输出。 TestNG测试报告:测试报告的生成,通过创建XML文件来进行操作运行测试类或者测试套件。如果直接在测试类上运行,可能产生的测试报告会有问题(部分信息可能会缺失)。...原创 2019-02-07 09:26:24 · 2309 阅读 · 0 评论