• 2
  • 3
分享

      了解一项技术的有效途径是阅读官网文献,TestNG是应用非常广泛的自动化测试框架,稍有基础的同学都能够很容易上手TestNG。但在简单实用的背后,TestNG蕴藏着更为强大的功能和设计技巧。本系列通过对官网文献的阅读和大家一同探秘TestNG。


写在引言的前面

     使用TestNG很长时间了,相比JUnit,TestNG上手更容易,配置更灵活,功能更强大。出于项目的需要,使用的时候功利性太强,总是遇到拿起来就用,遇到问题再各种查资料解决,缺少系统的总结。现在通过TestNG官网文章的阅读进行系统的学习,主要是对TestNG官网文章的翻译,对其中有奥秘的地方增加自己的见解和实例验证。

引言

    TestNG是能够满足复杂测试需求的测试框架,从单元测试到集成测试都能轻松满足。其中单元测试是指:将一个类与其他类隔离进行测试;集成测试是指:测试由多个类、多个包、多个外部框架组成的系统,比如应用用服务器。

    使用TestNG编写测试通常分为如下三个过程:

   (1) 编写测试的业务逻辑,并在代码中加入TestNG注解(TestNG annotation)。

   (2) 在TestNG配置文件testng.xml(以下简称testng.xml)或Ant构建文件build.xml中添加该测试的信息,包括类名、本次测试哪些组等等。

   (3) 运行测试。

    在TestNG官网的欢迎界面上有一个快速例子,能够帮助我们更好的理解TestNG。

     TestNG中测试的组织包括如下概念,也是testng.xml中标签的定义:

     (1) 测试套件(suite):一个testng.xml表示的为一个套件,包含一个或多个测试(test),testng.xml中以<suite>标签定义。

     (2)测试(test):一个测试可以包含一个或多个测试类(class),testng.xml中以<test>标签定义。

     (3)测试类(class):TestNG测试类实际就是一个Java类,该类需要包括至少一个TestNG注解。一个测试类可以包含一个或多个测试方法(method),testng.xml中以<class>定义。

     (4)测试方法(method):TestNG测试方法是一个Java方法,在代码中以@Test进行注解,testng.xml中以<method>定义。

      TestNG的测试组织包含着深刻的测试理论含义,在其中可以找到与测试设计对应的思路。一个实际的例子为,将一个测试场景定义为一个suite,可以是某个版本的验收测试,也可以是某个竞赛的对外测试;其中的每个模块作为一个个test,可以是资源管理,性能采集等等;每个模块的需求特性作为class,如果是单元测试,可以直接将测试类与待测试类进行关联和分解;特性的每个用例作为method管理,其中的验证点就是代码中assert的部分。

      TestNG测试支持@Beforexxx和@Afterxxx注解,其中xxx包括为上述介绍的概念,这些注解作用是允许我们在这个点之前或之后执行指定的Java逻辑。

      本系列的其余部分将介绍如下内容:

      (1)TestNG支持的全部注解以及简要说明,这样我们可以了解TestNG提供的功能,但如果想要对每个注解的有更深的认识,需要查看该注解的介绍章节。

      (2)描述testng.xml,介绍其中的语法和我们可以自定义的内容。

     (3)TestNG提供的各种特性的详细介绍,包括如何结合注解和testng.xml来使用。

  

    敬请期待下一章节:TestNG注解。

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 沐沐近期面试了几个测试人员,所以简单的记录一下自己的面试感悟。当我从一个面试者转变成面试官后,我才意识到,以往的面试经历中我的表现有多糟糕。下文将记录一下我作为一个不专业面试官的经验总结。一、面试前准备有意向企业时,尽量找关系内推,朋友的朋友此时都可以联系起来,内推能大大提升面试成功的几率。投递简历前,充分分析JD中的具体要求,优化简历内容,提升简历和招聘岗位的匹配度。接到面试邀约后,了解公司的相关信息,如果是内推的岗位,尽量向内推人员打听相关的产品信息、项目信息、技术架构、测试框架等信息,知己知彼百战不殆。简历样式尽量整洁美观,突出重点;避免出现排版混乱、错别字等情况。简历内容尽量实事求是,...
            1 0 3346
            分享
          •   测试工作是一项极其重要的质量保证活动,因此测试部门既是软件发布质量把控的出口,也是客户意见反馈的入口。但是因为之前的不重视,导致了软件测试行业的发展相对滞后,优秀的软件测试工程师非常难得。  一个优秀的测试工程师要对一些不易重复出现的错误找到规律,要能够帮助开发人员定位问题,能够对代码进行一定的检查,将错误尽可能在项目生产的早期阶段发现,同时,测试工程师还要对各种编程语言、数据库都有一定的了解,要有编程的概念。  那么,什么样的人才适合做软件测试工程师呢?  一般情况下,分为技术技能需求和职业素质需求。  一、基础要求(技术技能需求)  软件测试工程师岗位基础要求一般包括以下几个方面。  ...
            0 0 175
            分享
          • 第1步:设计测试自动化策略许多团队通常会遇到困难,因为他们没有面向目标的测试自动化策略。它将所有团队成员保持在同一页面上。它通知和传达预定义的目标和计划,每个人都可以从中了解他们所做的是对还是错,并调整下一步行动。如果没有清晰的战略,团队很容易改变方向,选择错误的解决方案,并且无法以有助于实现业务价值的方式使用测试自动化。这是看待它的一个好方法:测试自动化就像构建并拥有自己的软件来测试其他应用程序。它应该以与软件开发相同的方式以清晰的愿景和计划进行管理。第2步:丰富测试自动化基础了解测试自动化的所有基础知识至关重要,从敏捷和DevOps方法、框架构建、自动化金字塔、架构、自动化方法到报告和指标...
            0 0 1288
            分享
          •   据报道,最近,面对人工智能技术的新一轮火爆,马斯克等1000多名专家联合发表一封公开信,呼吁在确保安全之前暂缓先进人工智能的开发。日前,Meta的首席技术官安德鲁·博斯沃斯(AndrewBosworth)对公开信作出回应,表示这样的呼吁不切实际,也难以产生效果。  博斯沃斯表示,在人工智能领域,他认为投资于负责任的研发非常重要,Meta公司也一直在进行这样的研发和投资,但是,如果要停止某个技术的研发进程,然后要对未来进行的调整作出决策,这样是很难做到的。  博斯沃斯表示,在高科技面前,人类如果想知道如何保护自我、研发出安全可靠的技术,首先要了解新科技本身是怎样演进的。他认为,公开信呼吁暂停...
            0 0 613
            分享
          •   根据美国商标和专利局(USPTO)公示的最新清单,苹果近日获得了一项新的可折叠手机专利,最大的亮点是让折痕区域自愈。  根据专利描述,苹果计划通过外部施加的热、光、电流或其他类型的外部刺激,来实现折痕的自我修复。  IT之家附相关草图如下,苹果构想的未来设备配有一个铰链,允许设备通过铰链进行折叠。而在铰链部分的屏幕采用柔性屏幕覆盖层,可以插入在显示器覆盖层的第一刚性和第二刚性部分之间。  苹果表示电子设备的显示覆盖层可能会被划伤或凹陷。为了改善电子设备的美观性,可能需要降低划痕和凹痕的存在感,于是在屏幕覆盖层中引入一层自愈材料。  自愈材料层可以在整个显示器覆盖层上形成,也可以仅在显示器覆...
            0 0 972
            分享
      • 51testing软件测试圈微信