接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。前端
测试的策略:数据库
接口测试也是属于功能测试,因此跟咱们以往的功能测试流程并无太大区别,测试流程依旧是:json
评审测试接口文档(需求文档)后端
根据接口文档编写测试用例(用例编写彻底能够按照以往规则来编写,例如等价类划分,边界值等设计方法)安全
执行测试,查看不一样的参数请求,接口的返回的数据是否达到预期cookie
那么设计测试用例时咱们主要考虑以下几个方面:架构
功能测试:并发
接口的功能是否正确实现了性能
接口是否按照设计文档中来实现(好比username参数写为了user,那么这就不符合,由于接口文档在整个开发中都须要使用,因此接口实际的设计要与接口设计文档中保持一致)测试
兼容性测试: 好比说今天接口进行了调整,可是前端没有进行变动,这时候须要验证新的接口是否知足旧的调用方式
错误码测试: 通用的错误码与业务错误码是否可以清晰的说明调用问题,错误码是否可以尽量的全的覆盖全部的状况
返回值测试: 返回值除了内容须要是正确的,还须要类型也是正确的,保证调用方拿到这些参数可以正确的解析
参数边界值、等价类测试
json格式测试: 一般咱们的接口通常设计的都是传递json串,那么就须要去测试 若是传递非json的状况,这时候程序会不会正确的处理,返回相应的 error code
默认值测试: 不少状况一些非必填的参数会有默认值,好比说一个查询的接口,参数count为返回查询的结果数量, 默认为10,那么就应该有一条case来测试,固然前置条件是数据库里面必需要存在这样的数据超过10条。
逻辑业务:
是否有依赖业务,好比查看订单,是须要用户首先登陆的,因此确定要保证登陆了或有相应的cookie
业务逻辑测试: 传递正确的参数,接口对数据库进行查询的操做,须要去验证数据库查询是否正确,接口对数据库进行 增删改的操做,也须要看数据库是否同步进行了这些操做
异常测试:
异常分为两类,参数异常和数据异常
参数异常:
关键字参数:将参数写为开发语言中的关键字
参数为空:好比去掉了username参数
多或少参数:多或者少参数的验证,如今还不肯定若是一个接口多了参数若是没有报错是不是合理的,或者是否须要优化,由于就目前开发给予的答案是,通常不对接口多了参数的处理
错误参数:好比将username参数写为了user等看是否能返回相应的error code
数据异常:
关键字数据:将参数的值填为开发语言中的关键字
数据为空:将参数的额值填为空
长度不一致:由于数据库中每一个字段都设置有字段长度,填写不符合的长度进行验证
错误数据:就是将参数的值任意填写,或填写不存在的数值
性能测试:
响应时间
吞吐量
并发用户数
安全性测试:
敏感信息是否加密
必要参数是否后端也进行校验(如今不少系统先后端架构是分离的,从安全层面来讲,只依赖前端进行限制已经彻底不能知足系统的安全要求(绕过前端太容易了), 须要后端一样进行控制,在这种状况下就须要从接口层面进行验证)
接口是否防恶意请求(SQL注入)
cookie:就是将header中的cookie修改或删除后看是否能返回相应的error code
header:就是删除或修改header中部分参数的值,看是否能返回相应的error code
惟一识别码:删除修改惟一识别码测试