• 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注解。

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • HttpRunner初级需要掌握的内容1.语法选择:    Httprunner提供两种语法,yaml和json语法书写脚本内容,个人选择yaml。2.掌握config模块和test模块   config模块,俗称基础配置模块,用于配置接口请求的基本参数包括公共变量、期望状态码等等   test模块,俗称测试用例模块3.提取关键字extract的使用    主要用于提取请求响应的数据作为下一个接口请求的变量、或断言4.断言关键字validate的使用    ...
            0 0 1215
            分享
          •       最近因工作需要,开发了一个回归测试的小工具。可以根据配置读取不同交易报文并进行变量替换,然后自动发起交易并检查结果。自我感觉挺好用的,与大家分享一下设计思路。(代码要保密,就不上传了。有需要可以根据设计思路自己开发。      设计背景:      目前系统交易越来越多,需求改动也比较频繁。为防止代码改动影响旧需求,每次修改代码后都需要把相关交易回归测试一次。      目前此项回归测试工作主要靠程序员手工完成,存在以下问题:回归测试...
            0 0 2691
            分享
          •   Meta 公司昨日(9 月 13 日)发布新闻稿,宣布以负责任和透明的方式,重启 AI 训练计划,利用英国用户在 Facebook 和 Instagram 上的公开帖子来训练 AI。  Meta 公司声称已根据监管机构的整改要求,修订推出了新的“选择退出”方案,进一步提高数据透明度。  Meta 公司表示此举是为了进一步优化生成式 AI,让其能够“反映英国文化、历史和习语”。关于其最新数据收集的具体差异,尚不十分明朗。  Meta 公司宣布将从下周开始,在应用中通知英国用户,解释其正在采取的措施,该公司随后计划在未来几个月内开始利用公开内容训练其 AI。  IT之家注:公告发布的三个月前,...
            0 0 182
            分享
          •   日本国会已经完成了一项与欧盟非常相似的举措,即制定一项法律,禁止大型科技公司阻挡第三方应用程序商店的出现。该法案于 5 月在日本众议院获得通过,现在又于周三在参议院获得通过。根据现行程序,该法案无需经天皇签署即可成为法律。  该法案旨在促进竞争,降低应用程序价格。据报道,日本政府认为苹果和Google是双头垄断企业,它们向开发者收取高额费用,然后再转嫁给用户。  拥有应用商店的大型科技公司也将禁止公司优先使用自己的服务,Google可能受此打击最大。  违法者最初将被处以最高为违法具体服务国内收入 20% 的罚款。如果被罚主体放任这种行为持续下去,罚款可能会增加到 30%。  日本政府的公...
            0 0 175
            分享
          • 测试环境这个话题对于开发和测试同学一定不陌生,大家几乎每天都会接触。但是说到对测试环境的印象,却鲜有好评:环境不稳定,测试五分钟,排查两小时;功能建设不全,导致验证不充分,遗漏缺陷;多人共用,互相踩踏;随手改动不入库,消极对待,缺乏敬畏之心。这些问题在行业内其实屡见不鲜。我甚至有听过运维同学"脏乱差"的评价。这里先不说他的评价是否有偏见,但是起码我认为,针对测试环境的管理有较大的改进空间,这是不争的事实。而本文将重拾这个看起来老生常谈的话题,希望能系统化的阐述我的认知,以期与大家对齐。如果不对或者不完善的地方,欢迎提出,笔者将非常乐于与大家讨论。首先我们要清晰的认知到,测试...
            0 0 3096
            分享
      • 51testing软件测试圈微信