博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
接口测试
阅读量:6581 次
发布时间:2019-06-24

本文共 1349 字,大约阅读时间需要 4 分钟。

hot3.png

以前的工作都是从最外层的业务进行测试,都是些有界面的测试。对接口测试不甚了解,总是不太清楚,接口测试到底是怎么测试的。最近的工作都是些接口测试,慢慢地有了自己的一些理解,所以就记录下来。

其实接口测试也没有那么难,无非是传入指定参数,进行相应的业务逻辑处理,得到相应的返回结果。那么接口测试也分三个方面进行关注。

接口测试校验点

1、传参校验

代码中要有相应的入参校验,入参异常校验有:普通的异常校验,如;参数为null(即某个参数必传) ; 业务逻辑参数异常,比如:指定的参数应该要大于0,某个参数属于某些枚举类型。

2、业务逻辑校验

对于业务逻辑的校验,首先你必须要清楚这个接口的作用。输入什么值,会得到什么样的结果,会落哪些DB数据。你必须要清楚的知道该接口对数据库进行了哪些操作,尤其是该接口对数据库中数据的一些改变。着部分的校验就是要校验,落DB的数据对不对,所以要查询相应出相应的数据,看是否修改、插入正确。

3、返回结果校验

对这个的校验就是,看是否符合预期。一般接口的返回值都是有固定形式的,比如封装了一层统一的对象,里面包含了返回状态码,业务值等。

对于正常的校验,返回状态码+是否返回了接口规范中需要值。

对于异常的校验:返回状态码+错误码+提示信息。(产生这种的原因有:参数校验失败+业务处理失败)

接口测试分类

接口测试分为单接口测试、端到端的测试。

单接口的测试:就是对单个接口的逻辑进行验证。

端到端的测试:一般以场景为主导,从用户发起请求结果开始,中间可能会经过一系列的接口,对所有的接口逻辑进行校验,是以最终的结果为主。主要测试接口逻辑正确,同时测试接口之间的通信正确。

接口测试注意点

1、接口测试时,首先自己要清楚接口的功能,要知道该接口对DB的操作,不能一上来就看开发的业务实现。这样会被带偏,有可能出现,代码没问题但是数据库中的数据就是插入错误了(因为插错了字段)。

2、在进行接口设计的时候,若是要和其他接口进行交互,要注意三个方面

  • 当交互接口返回明确的正常信息的处理逻辑,
  • 当交互接口返回明确的错误信息的处理逻辑
  • 当交互接口返回null (可能由于网络问题,导致没收到返回),此时就应该进行接口重试。

3、幂等性控制

对于接收相同的参数,多次请求返回的结果应该一致(如网络原因导致的失败重试)。一般我们现在公司都是采用每次请求都会带上一个 唯一的requestId, 或者其他的唯一键值。

失败幂等,意思是对于第一次查询是接口返回了错误结果,第二次该请求再来,依旧是错误结果。如场景:第一次消费扣减余额的时候,查询到余额不足,该接口返回失败。第二次同样的该请求消费扣减的时候,由于进行了充值,余额足了。那么按照失败幂等,该接口还是应该返回失败。做法是:在第一次调用时,落一条失败的log, 加上该请求的唯一键值。第二次请求的时候,先根据唯一键查询出结果,有就返回上次的结果。

4、异常校验

对于有明确接口返回值,或者有异常状态码的,我们直接校验其返回结果就可以了。对于没有具体信息返回的,如校验没有发送消息。则就校验数据库中没有插入数据。

附加:

转载于:https://my.oschina.net/ouyangtaohong/blog/1492236

你可能感兴趣的文章
SQL 注入自我总结
查看>>
那点你不知道的XHtml(Xml+Html)语法知识(DTD、XSD)
查看>>
servlet之控制分发
查看>>
Linux线程
查看>>
xfire开发web service及调用
查看>>
ubuntu(2)
查看>>
eclipse集成maven
查看>>
读书笔记(一)Java中HashTable、HashMap、TreeMap理解
查看>>
apklug插件托管服务开发教程之按条件查询云端插件-01
查看>>
spring BeanFactory 结构
查看>>
如何用消息系统避免分布式事务?
查看>>
Oralce tablespace表空间创建和管理
查看>>
利用本机环境搭建MySQL主从数据库(有点长 慢慢看 写错的地方麻烦各位神指出)...
查看>>
使用BeanUtils的时候报错:No value specified
查看>>
jqGrid编辑—单元格编辑【附视频、ppt、源码】
查看>>
【ADB】adb unknown host service 的解决办法
查看>>
PHP autoload机制详解
查看>>
__declspec关键字详细用法
查看>>
instruments
查看>>
android点滴5:Cannot cast from View to ProgressBar
查看>>