以前的工作都是从最外层的业务进行测试,都是些有界面的测试。对接口测试不甚了解,总是不太清楚,接口测试到底是怎么测试的。最近的工作都是些接口测试,慢慢地有了自己的一些理解,所以就记录下来。
其实接口测试也没有那么难,无非是传入指定参数,进行相应的业务逻辑处理,得到相应的返回结果。那么接口测试也分三个方面进行关注。
接口测试校验点
1、传参校验
代码中要有相应的入参校验,入参异常校验有:普通的异常校验,如;参数为null(即某个参数必传) ; 业务逻辑参数异常,比如:指定的参数应该要大于0,某个参数属于某些枚举类型。
2、业务逻辑校验
对于业务逻辑的校验,首先你必须要清楚这个接口的作用。输入什么值,会得到什么样的结果,会落哪些DB数据。你必须要清楚的知道该接口对数据库进行了哪些操作,尤其是该接口对数据库中数据的一些改变。着部分的校验就是要校验,落DB的数据对不对,所以要查询相应出相应的数据,看是否修改、插入正确。
3、返回结果校验
对这个的校验就是,看是否符合预期。一般接口的返回值都是有固定形式的,比如封装了一层统一的对象,里面包含了返回状态码,业务值等。
对于正常的校验,返回状态码+是否返回了接口规范中需要值。
对于异常的校验:返回状态码+错误码+提示信息。(产生这种的原因有:参数校验失败+业务处理失败)
接口测试分类
接口测试分为单接口测试、端到端的测试。
单接口的测试:就是对单个接口的逻辑进行验证。
端到端的测试:一般以场景为主导,从用户发起请求结果开始,中间可能会经过一系列的接口,对所有的接口逻辑进行校验,是以最终的结果为主。主要测试接口逻辑正确,同时测试接口之间的通信正确。
接口测试注意点
1、接口测试时,首先自己要清楚接口的功能,要知道该接口对DB的操作,不能一上来就看开发的业务实现。这样会被带偏,有可能出现,代码没问题但是数据库中的数据就是插入错误了(因为插错了字段)。
2、在进行接口设计的时候,若是要和其他接口进行交互,要注意三个方面
- 当交互接口返回明确的正常信息的处理逻辑,
- 当交互接口返回明确的错误信息的处理逻辑
- 当交互接口返回null (可能由于网络问题,导致没收到返回),此时就应该进行接口重试。
3、幂等性控制
对于接收相同的参数,多次请求返回的结果应该一致(如网络原因导致的失败重试)。一般我们现在公司都是采用每次请求都会带上一个 唯一的requestId, 或者其他的唯一键值。
失败幂等,意思是对于第一次查询是接口返回了错误结果,第二次该请求再来,依旧是错误结果。如场景:第一次消费扣减余额的时候,查询到余额不足,该接口返回失败。第二次同样的该请求消费扣减的时候,由于进行了充值,余额足了。那么按照失败幂等,该接口还是应该返回失败。做法是:在第一次调用时,落一条失败的log, 加上该请求的唯一键值。第二次请求的时候,先根据唯一键查询出结果,有就返回上次的结果。
4、异常校验
对于有明确接口返回值,或者有异常状态码的,我们直接校验其返回结果就可以了。对于没有具体信息返回的,如校验没有发送消息。则就校验数据库中没有插入数据。
附加: