3.1. 接口测试概述
首先我们先看一下经典金字塔
这个金字塔从底层到上层依次是单元测试、服务测试、UI测试,越接近接近底层,收益成本比越高,我这要说的就是服务测试,也叫做接口测试、API测试
3.1.1. 什么是接口
通常我们接触到的接口分以下几种
系统内部服务层级之间的接口调用,比如后端服务应用层调用service层的接口,service层掉用DAO层的接口,这个地方的接口测试属性白盒范畴,一般开发自己做就可以了
服务之间的接口调用,比如你有两个服务,一个是用户中心,一个是订单中心,订单中心会去调用户中心的服务,查询用户信息,这些接口我们一般是要测试的
系统之间的接口调用,比如你商户系统会去调公共服务系统的接口
说完的接口的种类,那么怎么理解接口呢,通俗一点就是输入数据,返回数据,不同种类的接口应用层协议可能不一样,传输的数据格式也可能不一样,在这里我们主要介绍HTTP接口,因为这种接口使用的最广泛,搞明白之后,其它接口大同小异,无非是client不一样而已
3.1.2. 怎么开展接口测试
一般来说,我们开展接口测试的流程如下:
需求确定后,开发出API文档
拿到API文档,编写接口测试用例
开发交付
实施接口测试
接口测试用例跟常规的功能测试用例基本一样,可以从接口功能测试、接口业务测试、接口性能测试、接口安全测试等角度考虑
接口功能的关注点是
接口每个参数输入正确与错误
接口参数缺失
接口参数边界值
接口参数类型
接口并发调用
接口业务测试主要是从业务的角度出发,把接口组合成一条业务链,比如登录之后下个订单,然后再取消,数据库中的数据是否正确等等
接口的性能测试是指接口是否满足业务的要求,比如业务要求系统可以满足50个人同时下单,那么下单这个接口就要可以承担50 TPS,目前业内一般使用JMETER去做性能测试
针对接口的功能和业务逻辑测试,如果采用手工的方式可以使用POSTMAN、HTTPCLIENT等工具,也可以使用JMETER、SOAPUI工具,同时也可以自己写脚本去测试,这种方式更为灵活,更容易实现一些复杂的场景和业务逻辑
3.1.3. 使用python做接口自动化
使用python做接口自动化测试是非常简单的,python入门非常简单,通过短时间的学习后,就可以开展自动化测试了,但需要掌握如下知识:
理解HTTP
熟悉python基础,python数据类型、函数、模块、类
熟悉常用的python模块,如requests、json、configobj、pyyaml等
熟悉python单元测试框架,如unittest、pytest、nose等
熟悉python操作数据库的方法