@Test注解上可通过配置threadPoolSize来实现并发,threadPoolSize和invocationCount是结合使用的,当invocationCount=1的时候,threadPoolSize没有意义。invocationCount表示方法被调用的次数,如果不配置threadPoolSize,该方法会被顺序执行5次,如果配置threaPoolSize=4,下图所示的方法会一次以4个线程并发执行,缩短执行时间。
TestNG是一个开源自动化测试框架,“NG”表示下一代(Next Generation的首字母)。 TestNG类似于JUnit(特别是JUnit 4),但它不是JUnit框架的扩展,相较于Junit而言,功能更强大,使用起来更加方便,比较适合测试人员来进行集成测试或是接口回归测试。
TestNG的简单使用 TestNG(Test Next Generation)是一个测试框架,其灵感来自JUnit和NUnit,但同时引入了一些新的功能,使其功能更强大,使用更方便。 TestNG是一个设计用来简化广泛的测试需求的测试框架,涵盖单元测试到集成测试 支持依赖测试方法,并行测试,异常测试、参数化测试、时限测试、分组测试等测试方法 基于Annotation机制,使测试方法更为灵活配置 引入xml配置文件,从而使软件测试不仅仅是硬编码到程序中,做到更为灵活 支持多线程测试 编写TestNG测
TestNG 是一个受 JUnit 和 NUnit 启发的测试框架测试框架,旨在简化广泛的测试需求,从单元测试到接口测试。 但引入了一些新功能,使其更强大,更易于使用,例如:
测试方法是可以带有参数的。每个测试方法都可以带有任意数量的参数,并且可以通过使用TestNG的@Parameters向方法传递正确的参数。
在Maven中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件。 Maven在某个统一的位置存储所有项目的共享的构件,这个统一的位置,我们就称之为仓库。(仓库就是存放依赖和插件的地方) 任何的构件都有唯一的坐标,Maven根据这个坐标定义了构件在仓库中的唯一存储路径, 解读Maven在仓库中的存储路径: 1.基于groupId准备路径,将句点分隔符转成路径分隔符,就是将 "." 转换成 "/" ; example: org.testng --->org/testng 2.基于artifact
可以通过在suite标签中使用 parallel 属性来让测试方法运行在不同的线程中。这个属性可以带有如下这样的值:
TestNG的官方文档的中文翻译版第二章,原文请见 http://testng.org/doc/documentation-main.html 2 - Annotation 这里是TestNG中用到的annotation的快速预览,还有它们的属性。 @BeforeSuite: 被注释的方法将在所有测试运行前运行 @AfterSuite: 被注释的方法将在所有测试运行后运行 @BeforeTest: 被注释的方法将在测试运行前运行 @AfterTest: 被注释的方法将在测试运行后运行 @BeforeGroups: 被配置的方法将在列表中的gourp前运行。这个方法保证在第一个属于这些组的测试方法调用前立即执行。 @AfterGroups: 被配置的方法将在列表中的gourp后运行。这个方法保证在最后一个属于这些组的测试方法调用后立即执行。 @BeforeClass: 被注释的方法将在当前类的第一个测试方法调用前运行。 @AfterClass: 被注释的方法将在当前类的所有测试方法调用后运行。 @BeforeMethod: 被注释的方法将在每一个测试方法调用前运行。 @AfterMethod: 被注释的方法将在每一个测试方法调用后运行。 属性: alwaysRun 对于每个bufore方法(beforeSuite, beforeTest, beforeTestClass 和 beforeTestMethod, 但是不包括 beforeGroups): 如果设置为true,被配置的方法将总是运行而不管它属于哪个组。 对于after方法(afterSuite, afterClass, ...): 如果设置为true,被配置的方法甚至在一个或多个先调用的方法失败或被忽略时也将运行。 dependsOnGroups 这个方法依赖的组列表 dependsOnMethods 这个方法依赖的方法列表 enabled 这个类的方法是否激活 groups 这个类或方法所属的分组列表 inheritGroups 如果设置为true,这个方法被属于在类级别被@Test annotation指定的组 @DataProvider 标记一个方法用于为测试方法提供数据。 被注释的方法必须返回Object[][], 其中每个Object[]可以指派为这个测试方法的参数列表。 从这个DataProvider接收数据@Test方法需要使用一个和当前注释相同名称的dataProvider名称 name 这个DataProvider的名称 @Factory 标记方法作为一个返回对象的工厂,这些对象将被TestNG用于作为测试类。这个方法必须返回Object[] @Parameters 描述如何传递参数给@Test方法 value 用于填充这个方法的参数的变量列表 @Test 标记一个类或方法作为测试的一部分 alwaysRun 如果设置为true,这个测试方法将总是运行,甚至当它依赖的方法失败时。 dataProvider 这个测试方法的data provider的名称 dataProviderClass 用于查找data provider的类。 如果不指定,将在当前测试方法所在的类或者它的基类上查找data provider。 如果这个属性被指定, 则data provider方法需要是指定类的static方法。 dependsOnGroups 当前方法依赖的组列表 dependsOnMethods 当前方法依赖的方法列表 description 当前方法的描述 enabled 当前类的方法/方法是否被激活 expectedExceptions 测试方法期望抛出的异常列表。如果没有异常或者抛出的不是列表中的任何一个,当前方法都将标记为失败. groups 当前类/方法所属的组列表 invocationCount 当前方法被调用的次数 successPercentage 当前方法期望的成功率 sequential
(1)测试用例覆盖率(覆盖率决定测试效率,选择合适用例,应约占功能用例集的20%~50%)
其实这篇文章的group宏哥在上一篇中就提到过,但是就是举例一笔带过的,因此今天专门有一篇文章来讲解Group的相关知识。希望大家茅塞顿开 ,有着更进一步认识和了解测试组。
上篇文章《电影知识图谱问答(二)|生成298万条RDF三元组数据》中讲到如何将爬取得到的豆瓣电影和书籍数据转换成知识图谱所需的RDF类型数据,本篇文章将介绍如何将得到的298万条RDF类型数据存储到知识图谱数据库之中,并介绍如何利用SPARQL进行知识检索。实践之前,请自主学习Apache Jena, Apache Fuseki, SPARQL相关知识。
在本期中,给大家分享一下TestNG测试框架的基础知识,使用TestNG的优点,TestNG的基本注解如何使用,套件、忽略、异常、依赖、参数化、超时等测试该如何进行。
本篇来介绍Test Methods, Test classes ,Test groups的基本概念。了解这三个基本概念,有助于我们学习其他的功能。前面介绍了@Test下的before和after属性,其中就有beforeMethods和afterGroups等。
现在这篇,我们来学习TestNG.xml文件,前面我们已经知道,TestNG就是运行这个文件来执行测试用例的。通过本篇,你可以进一步了解到:这个文件是配置测试用例,测试套件。简单来说,利用这个文件,我们可以跑同一个类或者多个不同类里面的测试用例。
TestNG,即Testing, NextGeneration,下一代测试技术,是一套根据JUnit 和NUnit思想而构建的利用注释来强化测试功能的一个测试框架,即可以用来做单元测试,也可以用来做集成测试。 因为TestNG是从Junit的思想构建而来,所以TestNG具备junit等所不具备的多重功能。而且TestNG目前的使用比较广泛,google的一个selenium自动化项目组即采用的是selenium rc的java 接口+ testNG结合的方式。 写一个测试通常分为三步: 1.编写测试业务逻辑,并且在你的代码中插入 TestNG annotations 。 2.在 testng.xml 或 build.xml 添加你的测试信息。例如类名,希望运行的组等等 3.运行TestNG. 文档中会使用到如下的概念: 1.一套测试(suite)由一个XML文件所表示。它能够包含一个或者多个测试,<suite> 标记来定义。 2.test由<test>标记来表示一个测试,并且可以包含一个或者多个TestNG类。 3.TestNG 类是包含至少一个TestNG annotation的java类,由<class>标签描述并包含一个或多个测试方法。 4.测试方法,就是一个普通的Java方法,在由@Test标记。 testNG.xml testNG的运行需要一个配置文件,默认为testng.xml,其描述了要运行哪些测试等配置。 编写testNG.xml如果没有书写提示,给在头部引入 <!DOCTYPE suite PUBLIC "--//beust.com//testng//testng 1.0//EN" "http://beust.com/testng/testng-1.0.dtd" >就会有提示了实践
前面一篇,我们一气呵成地完成了第一个Selenium自动化脚本的编写过程。当然是我完全给你灌输了这些代码和代码的解释,也许你还没有掌握。因为,我没有教你如何元素定位,如何写精确的xpath表达式,如何高效写测试断言。这些东西,有些你可以去我博客看看对应文章,有些是无法教会你,需要你多多练习,自己思考和总结。本篇,我们来找找上一篇自动化用例的不合理之处有哪些。
4 - 运行TestNG TestNG可以以不同的方式调用: * Command line * ant * Eclipse * IntelliJ's IDEA 1) 命令行 假设你已经将TestNG加入到class path,调用TestNG最简单的方法事下面的:
myeclipse-10.0-offline-installer-windows.exe
领取专属 10元无门槛券
手把手带您无忧上云