接口测试理论

接口

概念

  • 接口就是:系统与系统之间,组件与组件之间,系统与组件之间进行数据交互的通道。【服务器与客户端之间的数据交互】

image-20231202001435764

接口的类型

  • 按协议划分:http,tcp,ip

  • 按语言划分:c++,java,php

  • 系统之间的接口:比如服务器之间有用户系统,订单系统,商品系统,各个系统之间再进行交互的接口。

    image-20231202002148231

  • 程序之间的接口:方法与方法之间,模块与模块之间,函数与函数之间的接口

    image-20231205164253199

接口测试

概念

是对系统和组件之间的接口进行测试,主要校验传递的数据正确性和逻辑依赖关系的正确性。

原理

  • 接口测试,主要针对的测试目标是—服务器
  • 怎么测?
    • 模拟客户端向服务器发送请求
  • 用什么测?
    • 工具:fiddler,postman,jemeter
    • 代码:python+unittest框架+Requests框架
  • 测什么?
    • 测服务器针对客户端,回复的响应数据是否与预期结果是否一致!

特点

  • 测试提前介入
  • 发现界面操作发现不了的问题
  • 接口测试低成本高收益
  • 接口测试是在用户的角度进行测试

实现方式

  • 工具:fiddler,postman,jemeter
  • 代码:python+unittest框架+Requests框架

什么是自动化接口测试

  • 让工具或者程序模拟客户端发送请求给服务器,借助断言自动判断预期结果和实际结果是否一致

HTTP协议

协议:就是规则。要求通信的双方必须要严格遵守!

HTTP协议简介

超文本传输协议,【超出文本以外的传输】互联网上最为广泛的一种网络协议,基于请求与响应的应用层协议。

IP的作用类似于身份证号,在网络环境中唯一标识一台主机。

HTTP协议的特点

  • 支持客户端服务器模式
  • 简单快捷
  • 灵活
  • 无连接
  • 无状态

URL 格式

URL的作用是唯一找到数据资源,HTTP使用URL来建立连接和传输数据

http://www.itcast.cn:8080/news/index.html?uid=123&page=1
  • 协议部分:“http",常见的协议有http,https,ftp等

  • 域名部分(IP):”www.itcast.cn“,也可以使用IP地址作为域名使用。

  • 端口部分(port):”8080“,端口可以忽略,默认端口(HTTP:80,HTTPS:443,FTP:21)

  • 资源路径部分:”/news/index.html“

  • 查询参数部分:”uid=123&page=1“,可以允许有多个参数,多个之间用&作为分隔符

    image-20231205210158266

HTTP请求

  • 客户端(app,浏览器),发送请求给服务器时,使用的协议----http请求协议
  • 规定发送给服务器的数据传输的语法格式

整体格式

  • 请求行:http请求的第一行:请求方法(空格)URL(空格)协议版本

  • 请求头:语法格式:key:values【键值对】

    • User-Agent:描述请求发送端的浏览器类型
    • Content-Type:描述请求体的数据类型!
  • 空行:代表http请求头结束,请求体开始

  • 请求体:请求发送携带的数据,数据类型:Content—type

    • post和put有请求体
    • get和delete没有请求体

    image-20231205214353902

fiddler抓包验证

image-20231206092303617

image-20231206092903894

请求行

  • 请求方法是重点【类似于数据库的增删改查】(大小写无所谓)
    • post:增加【登录,注册】
    • delete:删除
    • put:修改
    • get:查询

请求头

  • 语法格式:k:v
  • User-Agent:产生请求的浏览器类型
  • Content-Type:请求体数据的类型
    • application/json:JSON数据格式
    • application/x-www-form-urlencoded:form表单数据

请求体

  • 数据值的组织形式受上面的Content-type决定
  • GET,DELETE没有请求体
  • POST,PUT有请求体

HTTP响应

服务器端针对客户端发送的数据进行响应回复,回发数据–HTTP响应。

规定回发给客户端的数据组织格式。

整体格式

  • 响应行(状态行):协议版本(空格)状态码(空格)状态描述

  • 响应头:语法格式:K:v

    • content-type:描述的是响应体中的数据类型
  • 空行:响应头结束,响应体开始

  • 响应体(绝大多数不为空)【请求成功:回发数据,请求失败:回发错误信息)

    • 数据类型受Content-type值影响

image-20231206101237504

image-20231206094313802

状态行

  • 状态码:

    • 1xx:代表指示信息,表请求已经被接受,等待继续处理
    • 2xx:代表请求成功被处理,接受。常见:200,201
    • 3xx:重定向:待访问的资源,需要重新指定路径访问
    • 4xx:代表客户端错误,常见404【请求文件不存在】,403【请求文件存在,但是拒绝访问,没有访问的权限】
    • 5xx:服务器端错误
  • 状态码描述:一般与状态码唯一对应。200—ok,404----file not found

响应头

  • 语法格式:k:v
  • Content-Type:响应体数据的类型
  • Coontent-length:响应体的大小,可以不写,但是要写,必须要准确

响应体

  • 回发给客户端的消息内容。常见html网页,xml,json文件

传统风格接口

只需要post和get就可以了,URL不唯一,同一个操作可以对应不同的URL。

image-20231207135857520

RESTful风格接口

image-20231207140021370

RESTful接口特点

  • 每一种URL代表一种资源
  • 客户端和服务器之间,传递这种资源的某种表现层
    • 表现层:数据的不同表现形式(如:图片,文字表现用一个数据对象)
  • 客户通过四个http动词,对服务器端资源进行操作,实现“表现层状态转化”
  • 传递之间常用格式为JSON

接口测试流程

1.需求分析【产品写需求文档】

  • 主要依据需求文档

2.接口文档解析

  • 一般有开发人员编写接口文档(API文档)

3.设计接口测试用例

4.执行测试

  • 使用接口测试工具实现
  • 通过编写代码实现

5.接口缺陷管理与跟踪

6.生成测试报告

7.接口自动化持续集成(可选)

接口文档

什么是接口文档

由开发人员编写,描述接口信息的文档,开发团队按接口文档进行开发工作,并要一直维护遵守。

作用

  • 能够让前端和后端人员更好的配合,提高工作效率。
  • 项目迭代和项目人员更换时,方便后期人员查看和维护
  • 方便测试人员进行接口测试

展现形式

  • word
  • excel
  • pdf

结构

  • 基本信息

    • 资源路径(协议和域名在“系统信息”中)
    • 请求方法
    • 接口描述
  • 请求参数

    • 请求头

      • content-type(描述请求体的数据类型)
    • 请求体

      • 实现该接口使用的数据及对应类型
  • 返回数据

    • 成功:状态码200
    • 失败:错误码(自定义状态码)
      • 码值
      • 描述信息

接口文档解析

  • 接口文档的解析本质:从接口文档中,找出http请求的数据信息请求方法

    • 主要包含:请求行
    • 请求头
    • 请求体
    • 响应状态码和描述
  • 以登录接口为例

    • 请求方法:POST
    • URL:把基本信息的path加在系统信息的系统路径后面。
    • 请求头:content-type:application/json
    • 请求体:{”mobile“:“”,“password”:“”}
      • 错误码
        • 10000:操作成功
        • 20001:用户名或密码错误
        • 99999:抱歉,系统繁忙,请稍后重试

image-20231207150839338

image-20231207151446363

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值