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