问题:

1)为什么要做接口测试

2)接口测试需要用到的流程和工具

3)接口测试点编写的思路

4)接口出现问题如何定位

5)接口疑问

答案:

一、为什么要做接口测试

a)提升测试工作的效率,一般来说前端对接完后端接口后需要提测2~3天,我们完全可以利用这个时间提前跑一下接口,提早发现bug;

b)防止恶意篡改数据,研发界中有一句话:页面由前端决定,数据由后端决定,所以往往篡改数据都是从接口层面进行的;

c)有助于接下来的功能测试业务稳定;

二、接口测试需要用到的流程和工具

流程:接口需求文档分析、编写测试点、执行测试点,发现bug并追踪、出接口测试报告、进行接口自动化

工具:postman或jmeter

三、接口测试点编写的思路

功能方面:

1)正常场景功能是否实现;

2)参数异常测试(例如少传参数、多传参数、不传参数、传错误参数等);

3)数据异常测试(为空、null、参数的边界值(例如接口要求只能传10字符,测试时传大于或者小于等于10字符测试)、传入错误格式参数(例如接口参数要求传JSON格式,测试时传入html格式));

4)检测接口返回数据是否正确;查看接口返回报文;

5)默认值测试,很多一些查询类的接口的参数都会有默认值,请求条数一般都是默认第一页10条;

6)依赖业务,比如说cookie或者token等,在不传这些数据时是否可正常请求接口;

7)数据库检查,当接口对数据进行了增删改查时,需检查数据库是否同步这些操作;

兼容性方面:

1)接口进行了调整后,前端没进行变更的时候,需要验证新的接口是否满足旧的调研方式

性能方面:

1)响应时间,检查是否在系统规定范围内;

2)吞吐量;

3)并发数;

4)服务器资源使用率,例如:占用内容,CPU等

5)接口错误率;

安全方面:

1)敏感信息是否加密,例如:登录密码,银行卡号等;

2)必填参数是否在后端进行校验,例如必填参数的字符长度等;

3)是否做越权访问校验,例如一些系统中会在URL地址中体现出admin/user/system/pwd等敏感目录;

4)接口是否防恶意请求,例如SQL注入、xss注入等;

5)修改cookie或header是否返还对应错误码;

四、接口出现问题如何定位

1)对比接口文档,检查请求URL、请求参数、是否传token或cookie、将这些基本信息排除后仍无误,则继续看下面;

2)对比需求文档,看请求和响应信息、看状态码并分析具体状态码是什么意思,从而判断接口报错的具体原因;

3)查看服务器日志是否有报错、具体看error、exception信息,判断出错的原因,截图给开发;

4)分析具体需求的业务逻辑,从而判断具体报错原因;

五、接口疑问

1、非业务的接口是否需要测试?

在接口测试中,我们大部分需要测试的接口都是业务接口,非业务的开发内部接口等我们不需要测试;

2、没有接口文档能进行接口测试吗?

没有接口文档的时候,我们可以通过UI界面使用抓包工具抓取系统使用过程的接口来进行接口测试;

3、http和https的区别是什么?

1)http使用的时候超文本传输协议,https使用的是ssl加密传输协议,从安全角度来说https更安全;

2)连接方式不同,http的连接方式是无状态的,而https是由ssl+http协议构建的加密传输、身份认证的网络协议;

3)端口不同,http的端口是80,https的端口是443;

4)证书申请方式不同,http是免费申请的,https是需要用到ca申请证书,需要交费;

4、接口测试必须要在功能测试前吗?

不一定,具体看情况;1)如果前端没有提测而后端开发已经提测,那么就需要先进行接口测试,等到前端也可以测试的时候再进行功能测试;2)如果是前后端一起提测的话就功能和接口一起进行测试;

5、接口经常发生变化,和系统前后端分离有关系吗?

关系不大,主要是业务需求改变了所以接口也得跟着改;

6、接口测试的本质是什么?

主要是针对数据的输入和输出进行测试;

02-16 09:30