一、接口测试理论
1.什么是接口?
——传输数据的通道
(前端向后端发送“请求”,后端给前端“响应”)
2.接口的分类
(1)内部接口
系统内部各子系统/模块之间的交互
(登录、注册、贷款、支付、提现......)
(2)外部接口 --第三方接口
外部系统与系统之间的交互
3.什么是接口测试?
对系统组件间的一种测试
(1)接口测试的作用/意义
用于检测外部系统与系统之间以及内部各个子系统之间的交互点
(2)测试的重点
检查数据的交互、传递以及系统间的依赖关系
4.为什么要做接口测试?
(做完对应的功能测试,还要不要再单独对接口做测试呢?)
(1)因为后端早于前端开发,测试应尽早介入测试,所以需要用接口工具进行接口测试
(2)前后端都做好了,还需要对接口做测试吗?
需要!!!
基于安全方面考虑,很多接口通过 前端验证(比如“密码”格式验证、数据类型验证)绕过对应后端进行请求 (发送错误格式的请求/错误的数据类型,前端就不会给服务器发送“请求”,前端做了校验,会给页面返回一个格式不正确的提示)
-----------补充----------
项目:前端+后端
【前端】--页面显示,用户输入
【后端】--项目的业务逻辑
二、常见接口类型
1.http协议接口
绝大部分都是基于http协议的接口
2.什么是http协议
超文本传输协议,基于请求和响应的协议,并且无记忆的
3.http协议的结构
(1)请求:
请求行(包含请求的协议http及版本号)

请求头(包含很多字段)

空行
请求体(包含请求的数据)

(2)响应:
响应行
响应头

空行
响应体
4.http协议接口的请求方法
抓取接口工具
浏览器F12(浏览器开发者工具)
1.请求方法
(1)get方法:获取服务器资源
(2)post方法:提交数据
注意:
get方法与post方法的区别:
get方法:获取服务器资源;通过请求地址进行传参,安全较低。
post方法:提交数据;通过请求体进行传参,安全性高。
(3)put
(4)delete
5.http协议常见状态码
200(正常):表示一切正常,到了服务器,并且服务器正常的响应了你的请求;
302(临时重定向):指出被请求的文档已被临时移动到别处,此文档的新的URL在Location响应头中给出;
304(未修改):表示客户机缓存的版本是最新的,客户机应该继续使用它,比如说前端js;
4开头的--服务器错误
403(禁止):服务器理解客户端请求,但拒绝处理它。通常由于服务器上文件或者目录的权限设置所致;
404(找不到):服务器上不存在客户机所请求的资源;
500(内部服务器错误):服务器端的CGI、ASP、JSP等程序发生错误;
504:超时;
6.cookie/session/token
用户鉴权(识别用户):cookie、session、token
cookie
1.什么是cookie?
(1)由服务器生成,返回给浏览器客户端来进行保存,并且cookie是以键值对的形式保存在浏览器客户端的,每一个cookie都会有名称,值,过期时间;
(2)cookie由服务器生成,通过响应头把cookie传输给客户端,客户端会对cookie保存起来;
(3)缓存不等于cookie
session
2.什么是session?
(1)服务器端会话缓存技术;
(2)由服务器创建,保存在服务器,保存数据以键值对的形式;
(3)session过期:默认30分钟;(如:一个网站长时间不登陆,账号登录状态会自动失效,需要重新登录)
(4)session原理:
a.是依赖cookie实现的,session是服务器生成,并存储在服务器;
b.第一次,服务器创建session,并创建一个cookie,cookie中保存session的id,发送给客户端(客户端就有session的id,但是这个cookie只在浏览器内存中存在,关闭浏览器,cookie就会丢失)
c.第二次访问服务器,请求中携带sessionID的cookie发送给服务器,服务器通过session id查找session对象(只要浏览器不关闭,无论浏览器访问多少次,都共享一个session)

首次登录时,服务器会生成session会话,保存用户信息A;
然后服务器会将用户信息保存在响应头里发送给客户端;
再次登录时,cookie中会带上会话id,提交给服务器,服务器会自动匹配,该会话id是否A与相同,若相同则为同一个会话。
(cookie保存在客户端,session保存在服务器端)
token
3.什么是token?
(1)是服务器生成的一串字符串,作为客户端进行请求的一个表示,是无需存储在服务器端,而实现用户鉴权的一种方式;
(2)token原理:
第一次访问,服务器生成一个token(加密)并将token(加密)返回给客户端;
客户端存储token(加密)并且每次请求携带token(加密);
服务器解密token,验证token(识别是否是同一个用户),并返回数据;

cookie:在客户端存储用户的一些数据,比如用户名信息;【个性定制,用户设置】
session:在服务器端,记录用户的请求状态,一般默认时间30min。【用户信息】
token和session有什么区别?
session存储在服务器,session太多的话,服务器压力越大;
(为解决这个问题->token)
token由服务器生成加密,但是并不会存储在服务器上。
三、接口相关问题
1.什么时候要做接口测试?
答:
公司有接口测试需求,接收到接口测试任务
2.为什么要做接口测试?
答:
(1)开发代码初期,ui和web页面设计还没有到位,提前介入测试更早发现问题,底层的一个bug可能会引起外面的8个bug
(2)处于接口安全层面考虑,前端进行限制任意绕过去,需要同样测试后端的限制,测试接口验证数据的加密传输,例如用户密码
3.接口测试原理?
答:
模拟客户端向服务器发送请求,服务器接收到请求后对响应的请求做出处理并向客户端返回响应结果,客户端接受结果的一个全过程;
4.前端页面已经出来了,已经通过前端页面进行了测试,后端接口是否还需要测试?
实际安全层面需要,但公司不一定需要你去测试
没有前端页面,已经测试后端接口了,前端页面出来,还要做测试嘛?
一定需要测试,前端后端对接是否ok,前端基本格式校验,用户最终操作的这个页面;

被折叠的 条评论
为什么被折叠?



