TestNG在接口测试中的应用
作者:茜茜 撰写日期:2011-09-29
一、接口测试
接口测试是测试系统组件间接口的一种测试,接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。如今的系统架构纷繁复杂,系统间的接口庞杂繁多,传统的功能测试已经难以满足系统发展的需求,迫切需要一种更加有效实用且可以持续进行的测试方式来保证系统的质量,接口测试在这种需求下应运而生。
首先,随着系统复杂程度的上升,传统的测试方法测试成本急剧增加,测试效率大幅下降(根据淘宝的数据模型推算,底层的一个bug能够引发上层的8个左右bug,而且底层的bug很容易引起全网的宕机),相反接口测试能够提供系统复杂度上升情况下的低成本高效率的解决方案。
其次接口测试不同于传统开发的单元测试,接口测试是站在用户的角度对系统接口进行全面高效持续的检测。
最后接口测试是自动化并且持续集成的,这也是为什么接口测试能够低成本高收益的根源。
二、TestNG框架
实习过程中,所用的核心测试框架是基于TestNG框架之上的,测试脚本都是以TestNG的方式运行,跑脚本之前,TestNG会先启用一个main主线程,利用TestNG的标签通过反射找到并调用SetUp方法进行一些初始化的工作,用一个上下文context加载所有的读取的配置文件中的bean,加载完之后,用数据驱动的方式去调用@Test标签所标示的方法,从而去跑核心测试的脚本,结构图如下所示:
三、TestNG在接口测试里的应用
TestNG是为了解决Junit过于简单的问题而产生的,它与Junit是同一类的框架,两者不能同时使用,TestNG相比Junit增强功能如下:
(1)定义测试组的能力,每个测试方法都可以与一个或多个组相关联,但可以选择只运行某个测试组。
(2)重新运行失败的测试,对于每天都进行编译来说非常有帮助。
(3)提供了依赖检查机制,并可以严格控制执行顺序。
(4)可以简单的直接进行多线程测试了。
(5)提供xml方式的参数化测试。