[接口测试]

  • 接口 :系统与系统之间(外部系统与内部系统或内部系统与内部系统)数据传递交互的通道
  • 按范围划分 :
    • 系统之间的接口 :多个系统内部或系统与外部系统间的交互
    • 程序内部的接口 :方法与方法 模块与模块间交互

1.1 接口

  • 接口测试概念 :对系统或组件之间的接口进行测试,检验传递数据和逻辑依赖关系的正确性
  • 原理 :绕过前端界面,针对服务器进行测试,模拟客户端发送请求
    • 测什么 : 测服务器针对客户端请求,回发的响应数据与预期是否一致(人眼对比或断言).
  • 特点 : 质量控制前移理念,发现页面操作潜在问题,低成本高收益,从用户角度对系统进行全面检测.
  • 工具 : Postman Jmeter
  • 代码 : python+request,java+httpClient
  • 自动化接口测试 : 工具或代码模拟客户端发送请求给服务器,借助断言自动判断预期与实际是否一致.

1.2 协议

  • HTTP协议 : 超文本传输协议,基于请求与响应模式的应用层协议,互联网应用广泛.

URL(Uniform Resource Locater)格式

  • 概念 : 统一资源定位符.
  • 作用 : 定义一个数据资源
    示例
    • URL组成 : 协议:// IP地址:端口号/资源路径?查询参数
    • 协议 : http规定数据传输的方式(80).有s是加密安全(https是443)
    • 域名(IP) : 网络环境中找到主机(唯一标识一台主机) —>://与协议分隔(如:tpshop-test.itheima.net)
    • 端口(port) : 网络主机上标识进程(应用程序) —>:与域名隔开
    • 资源路径 : 标识网络资源(文本 图片等)—>:/与端口分隔(index.php)
    • 查询参数(可省) : 传递给资源路径对应的数据—>?与资源路径隔分,参数内部使用&隔分多个键值对(m=Home&c=User&a=do_login)

HTTP协议

  • http请求协议 : 客户端发送给服务器时使用
  • 规定数据传输的语法格式
  • 特点 : 支持客户端/服务器模式 简单快速 灵活 无连接 无状态(三握四挥)

请求格式 :
请求报文格式

  • http请求方法:(大小写无所谓)
  • 请求行(http请求第一行) : 方法 (空格) URL (空格) 协议版本
    • GET:查询
    • POST:添加数据(常用做登录)
    • PUT:修改
    • DELETE:删除
  • 请求头 : 格式:key : value
    • User-Agent:描述请求发送端的浏览器类型
    • Content-Type:描述请求体数据类型
      • application/json : json数据格式
      • application/x-www-form-urlencoded : 请求体的数据类型为表单类型
  • 空行 : 代表http请求头结束
  • 请求体 :请求发送时携带的数据,Content-Type的值影响请求体的数据类型
    • post和put(类似修改操作)有请求体
    • get和delete没有

HTTP响应格式

  • 服务器端,针对客户端发送的http请求,回发响应数据
  • 规定回发给客户端的数据组织格式
    响应格式
  • 响应行(状态行) :
    • 协议版本(空格)状态码(空格)状态描述
    • 状态码有三位数字中第一个数字定义了响应的级别
      • 1xx : 指示信息-信息已经接受,等待继续处理
      • 2xx : 成功–表示请求已被成功接受,处理,200,201
      • 3xx : 重定向–待访问的资源需要重新指定路径访问
      • 4xx : 客户端错误–请求有语法错误或请求无法实现,404,403
      • 5xx : 服务器端错误–服务器未能实现合法的请求
    • 状态码描述 : 一般与状态码 唯一对应,200–ok,404–not found
  • 响应头 :
    • 语法格式 : k:v
    • Content-Type : 值为响应体中的数据类型
    • Content-length : 响应体大小,可以不写,浏览器自动求,写就要准确.
  • 空行 : 代表响应头结束
  • 响应体 :
    • 绝大多数情况不为空,请求成功回发数据,失败回发错误信息,是实际结果!!!
    • 回发给客户端的消息内容,有html网页,xml,json等
    • 几乎所有 响应协议都有响应体

1.3 Fiddler工具

工具
示例

1.4 传统风格接口(对用户进行操作的相关接口,包括增删改查)

  • 请求方法,只是用get和post
  • url 不唯一,同一个操作对应不同的url,可以在url中查看出是何操作
  • 状态码的使用较单一,都是200
  • 针对不同功能接口独立 同个功能可以有多个接口

在这里插入图片描述

1.5 RESTful风格接口(表现层状态转换)

RESTful

  • 特点 :
    • 每一个url代表一种资源(url相同,但对应方法可能不同),看不出是啥操作
    • 接收方法与请求协议一一对应
    • 客户端通过四个http动词(get,post,put,delete)对服务器资源进行操作
    • 最常用格式为json

接口API设计
特点:面向资源

  1. 请求API的URL定位资源
 # 资源整合
 /users			//所有用户
 # 单个资源
 /users/1001	//id1001的用户
  1. 通过http方法对资源增删改查
GET/users		// 获取所有用户
POST/user/1001	// 修改id1002的用户

区别

  • 传统风格接口:get post方法,url不唯一,统一返回200
  • RESTful接口:url唯一,定位资源,结合请求方法对应不同操作,返回状态码较灵活.
接口规范 请求方法 URL 状态码
传统接口 通过get,post完成增删改查 url定义资源和操作整合 均为200
Restful接口 使用http协议方法定义 url只定义资源 通过http协议状态码定

1.6 接口测试流程

  • 需求分析,产生需求文档(产品)
  • 解析接口文档(开发编写接口文档)
  • 产生测试用例(送审)
  • 执行测试用例
    • 工具 : postman,jmeter
    • 代码 : python+requests+UnitTest
  • 执行测试用例,提交跟踪缺陷
  • 生成接口测试报告
  • 接口自动化持续集成(可选)

什么是接口文档

后端人员编写,描述接口信息的文档,开发团队按接口文档进行开发操作

结构!!!

  • 基本信息
    • 资源路径(协议和域名在"系统信息中")
    • 请求方法
    • 接口描述
  • 请求参数
    • 请求头 : content-type描述请求体的数据类型
    • 请求体:实现该接口所使用的数据及对应类型
  • 返回数据
      <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值