一、接口测试基础
1.什么是接口测试?
-
接口测试是测试系统组件间接口的一种测试。
-
接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。
-
接口测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
-
从接口形式来看各种应用程序的API(最著名的Windows系统API),硬件的驱动程序,数据库DAO层接口,及WebService 接口和Http Rest接口。
-
接口测试通常包括两类,底层模块之间的接口测试和上层服务接口测试。前者通常由开发工程师做单测覆盖,后者则通常由测试工程师测试保证
-
2.接口测试原理?
通过测试程序或工具模拟客户端向服务器发送请求报文,服务器接收请求报文后做出处理,然后将应答报文返回给客户端,即客户端发送应答报文的过程(Request -> Response)
3.接口测试分类?
-
系统与系统之间的调用:银行会提供接口供电子商务网站调用,或者说支付宝会提供接口给百度外卖调用。
-
上层对下层服务的调用:如Service层会调用DAO层的接口,而应用层又会调用服务层提供的接口。
-
系统内的服务之间的调用:如注册用户时,先调用用户查询的服务,查看该用户是否已经注册
4.为什么接口测试?
测试金字塔概念由Mike Cohn提出,在《Succeeding with Agile》中做详细论述。核心观点:底层的单元测试应多于UI层的端到端测试。
1).UI:通常指 Web、App的测试;2).Service:一般针对接口、服务,如 HTTP、WebService 接口测试;3).Unit:包含比较多,如:Web应用的dao、service、model,controller的junit单元测 试,javascript、css的前端单元测试,大部分应由开发做测试保证。
参考金字塔层次划分,不能层次的测试投入量是不同的,越上层比重应越小,以尽量低的测试成本防御不同类型的风险。金字塔分层测试的ROI则是倒金字塔,即 Unit > Service > UI。Service测试层于QA而言是重要一环,也是性价比相对较高的。总之,分层自动化测试是追求覆盖的传统自动化测试的一种修正,充分利用自动化测 试的优点,规避自动化测试的缺点。
5.接