1. 什么是接口测试?
尤其是在现在,前后端分离趋势下,有可能会绕过前端校验,通过接口对后端进行数据操作造成安全风险。因此我们需要接口测试,校验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系。
2. 接口测试的工具和方法
- 工具:postman,jemter,fiddler
- 框架:python+unittest框架+requests框架
3. HTTP协议
- HTTP协议请求过程
- 客户与服务端连接
- 客户端向服务端发出请求
- 服务端接接受请求,并给客户端返回请求响应数据
- 客户与服务端关闭连接
- HTTP请求内容
- 请求行(请求方法、请求URI和HTTP协议版本)
- 请求头(请求头包含了客户端发送给服务器的各种附加信息)
在请求标头这一栏以下内容
- 请求体(request body)
可以是json函数。是客户端发给服务器请求的数据,一般伴随POST
- 响应
- 状态码
- 1xx:指示信息–表示请求已接收,等待继续处理。(少见)
- 2xx:成功–表示请求已被成功接收,理解,接受。常见:200,201
- 3xx:重定向–要完成请求必须要进行进一步的操作。
- 4xx:客户端错误。常见:404,403
- 5xx:访问器端错误
- 请求方法
- GET
- 查询/获取数据
- 把参数(查询关键字)放在URL里面传递
- 比较不安全,参数直接暴露在URL,有长度限制,参数数据类型限制(ASCII)
- POST 添加
- 添加
- 把参数作为一个实体Request Body形式传递参数
- Put 修改
- 向指定位置传入资源
- Delete 删除
- 请求服务器删除Request-URL所标识的资源
- cookie、token、session
-
首先,他们都是对用户身份进行校验的东西
-
cookie:当用户访问网站时,服务器会将cookie发送到用户的浏览器中,浏览器会将cookie存储在本地,并在用户下次访问该网站时将cookie发送回服务器。存储在客户端,保存时间较长,发送请求时,往往会在请求里携带cookie;可以理解为一个令牌,拿着令牌的人就可以进皇宫,谁都可以拿着这个令牌
-
session由服务端创建,保存在服务端。session常用于进行数据存储,比如用户的各种信息,购物车信息啥的,这就是为什么人们在一段时间内可以直接登录各大网站。有时效性,会出现session超时(会话超时)
-
token:由于session保存在服务端,占用服务端资源,因此引出了token;理解为暗号,暗号对上了才会返回请求的数据发送登录请求后,服务端会给客户端发送一个token,客户端收到token后把它存储起来,可以放在cookie或者Local Storage(本地存储)里。客户端每次向服务端发送请求的时候都需要带上服务端发给的token。服务端收到请求,然后去验证客户端请求里面带着token,如果验证成功,就向客户端返回请求的数据。
-
4. 接口
- RESTful 遵守rest风格
- URL只指定资源,以HTTP方法动词进行不同的操作
- GET http://localhost:8080/admin/user (查询用户)
- POST http://localhost:8080/admin/user (新增用户)
- PUT http://localhost:8080/admin/user (更新用户)
- DELETE http://localhost:8080/admin/user (删除用户)
- “表现层状态转化”
- 由于请求同一个资源,所以URL相同;区别在于HTTP方法
- 传统
- 只有get和post
- 以不同的URL来区分不同的请求