【接口测试】

210 阅读3分钟

1. 什么是接口测试?

尤其是在现在,前后端分离趋势下,有可能会绕过前端校验,通过接口对后端进行数据操作造成安全风险。因此我们需要接口测试,校验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系。

2. 接口测试的工具和方法

  1. 工具:postman,jemter,fiddler
  2. 框架:python+unittest框架+requests框架

3. HTTP协议

  1. HTTP协议请求过程
  • 客户与服务端连接
  • 客户端向服务端发出请求
  • 服务端接接受请求,并给客户端返回请求响应数据
  • 客户与服务端关闭连接
  1. HTTP请求内容
  • 请求行(请求方法、请求URI和HTTP协议版本) image.png
  • 请求头(请求头包含了客户端发送给服务器的各种附加信息) 在请求标头这一栏以下内容 image.png
  • 请求体(request body) 可以是json函数。是客户端发给服务器请求的数据,一般伴随POST image.png
  1. 响应
  • 状态码
  • 1xx:指示信息–表示请求已接收,等待继续处理。(少见)
  • 2xx:成功–表示请求已被成功接收,理解,接受。常见:200,201
  • 3xx:重定向–要完成请求必须要进行进一步的操作。
  • 4xx:客户端错误。常见:404,403
  • 5xx:访问器端错误
  1. 请求方法
  • GET
    • 查询/获取数据
    • 把参数(查询关键字)放在URL里面传递
    • 比较不安全,参数直接暴露在URL,有长度限制,参数数据类型限制(ASCII)
  • POST 添加
    • 添加
    • 把参数作为一个实体Request Body形式传递参数
  • Put 修改
    • 向指定位置传入资源
  • Delete 删除
    • 请求服务器删除Request-URL所标识的资源
  1. cookie、token、session
    • 首先,他们都是对用户身份进行校验的东西

    • cookie:当用户访问网站时,服务器会将cookie发送到用户的浏览器中,浏览器会将cookie存储在本地,并在用户下次访问该网站时将cookie发送回服务器。存储在客户端,保存时间较长,发送请求时,往往会在请求里携带cookie;可以理解为一个令牌,拿着令牌的人就可以进皇宫,谁都可以拿着这个令牌

    • session由服务端创建,保存在服务端。session常用于进行数据存储,比如用户的各种信息,购物车信息啥的,这就是为什么人们在一段时间内可以直接登录各大网站。有时效性,会出现session超时(会话超时)

    • token:由于session保存在服务端,占用服务端资源,因此引出了token;理解为暗号,暗号对上了才会返回请求的数据发送登录请求后,服务端会给客户端发送一个token,客户端收到token后把它存储起来,可以放在cookie或者Local Storage(本地存储)里。客户端每次向服务端发送请求的时候都需要带上服务端发给的token。服务端收到请求,然后去验证客户端请求里面带着token,如果验证成功,就向客户端返回请求的数据。

4. 接口

  1. RESTful 遵守rest风格
  1. 传统
    • 只有get和post
    • 以不同的URL来区分不同的请求