接口测试【基础理论】

欢迎来到啊妮莫的学习小屋✨

个人主页🏠: 啊妮莫的学习小屋

收录专栏🚩: 软件测试

本篇文章主要介绍关于接口测试的基础理论知识,  非常适合零基础的小白入门~

目录

接口

概念

接口的类型

接口测试

概念

原理

特点

自动化接口测试

接口测试流程

HTTP协议

简介

URL语法格式

HTTP请求语法格式

HTTP响应语法格式

接口风格

传统风格接口

RESTful风格接口

接口文档

作用

结构

解析接口文档

fiddler发送HTTP请求


接口

概念

  • 接口: 系统与系统之间, 组件与组件之间, 数据传递交互的通道.

接口的类型

  • 按协议划分: HTTP, TCP, IP

  • 按语言划分: C++, Java, PHP...

  • 按范围划分

    • 系统之间

      • 内部系统之间

      • 内部系统与外部系统之间

    • 程序之间

      • 方法与方法之间, 函数与函数之间, 模块与模块之间

        # 接口
        def eat(something):
            print(f'小鸟在吃{something}')
        
        # 使用接口,传递数据
        def bird():
            eat('苹果')
        
        bird()

接口测试

概念

  • 对系统或者组件之间的接口进行测试, 校验传递的数据正确性和逻辑依赖关系的正确性!

原理

接口测试主要是通过模拟客户端向服务器发起请求; 对服务器进行测试.

实现方式:

  • 工具: postman, fiddler, Jmeter

  • 代码: python, UnitTest框架, Requests框架

通过工具或者代码的形式发起请求, 用肉眼判断或者代码断言 比对响应数据是否和预期结果一致.

特点

  1. 符合质量控制前移的理念

  2. 可以发现一些页面操作发现不了的问题

  3. 接口测试低成本高效益

  4. 接口测试是从用户的角度对系统进行检测

自动化接口测试

借助工具或者代码, 模拟客户端发送请求给客户端, 借助代码断言自动判断预期结果和实际结果是否一致.

接口测试流程

  1. 分析需求, 产生需求文档(产品).

  2. 解析接口文档 (接口文档由开发编写)

  3. 编写接口测试用例 (提交评审)

  4. 执行测试用例

    • 工具: postman, Jmeter, fiddler

    • 代码: python + Requests + UnitTest

  5. 提交, 跟踪缺陷

  6. 生成 测试报告

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

HTTP协议

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

简介

HTTP: 超文本传输协议, 是一个基于请求和响应模式的, 应用层的协议, 也是互联网上应用最为广泛的一种网络协议.

HTTP协议的特征:

  • 支持客户端/服务器模式

  • 简单快速

  • 灵活

  • 无连接

  • 无状态

URL语法格式

URL又称: 统一资源定位符. 它可以在网络环境中, 唯一的标识一个数据资源.

  • 协议: http; 规定数据传输的方式.

  • 域名(IP): 在网络环境中唯一标识一台主机; 使用://与协议进行隔分.

  • 端口(port): 在网络环境中唯一的标识一台主机上的一个进程; 常常省略; 使用: 与域名隔分.

  • 资源路径: 表示网络资源(文件, 图片, 视频...); 用/ 与端口号隔分

  • 查询参数: 传递给资源路径对应的数据; 用?与资源路径隔分; 查询参数内部用&隔分.

HTTP请求语法格式

HTTP请求规定了客户端发送给服务器的数据传输的语法格式.

  • 请求行: 请求方法 URL 协议版本

  • 请求头: 以kv对的形式组织

    • User-Agent: 描述 请求发送端的 浏览器类型.

    • Content-Type: 描述 请求体(Body) 的数据类型.

  • 空行: 标识http请求头结束

  • 请求体: 请求发送时携带的数据. 类型为Content-Type的值.

    • POSTPUT通常携带请求体

    • GETDELETE通常不携带请求体

常见的Content-Type:

  • application/json: JSON数据格式

  • application/x-www-form-urlencode: form表单数据

HTTP响应语法格式

HTTP响应规定了服务器回复给客户端的数据传输的语法格式.

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

  • 响应头: 以kv对的形式组织

    • Content-Type: 描述响应体的数据类型.

  • 空行: 标识响应头的结束

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

    • 常见的响应体有: html网页, xml, json

常见状态码分类及其含义:

  • 1xx: 表示请求已经被接收, 等待继续处理.

  • 2xx: 代表请求成功被处理; 200 ok

  • 3xx: 重定向

  • 4xx: 客户端错误; 404 Not Found

  • 5xx: 服务器错误;

接口风格

传统风格接口

特点:

  • 请求方法: 只使用GETPOST即可

  • URL不唯一. 同一个操作可以对应不同的URL

  • 状态码的使用比较单一; 200最为常见

RESTful风格接口

特点:

  • 每一个URL代表一种资源

  • 客户端和服务器之间, 传递这种资源的某种表现层

    • 表现层: 数据的不同表现形式

  • 请求方法: 使用GET,POST,DELETE,PUT 方法完成对服务器的操作, 实现"表现层转化"

  • 接口之间传递的数据最常用的格式为JSON

接口文档

接口文档: 又称API文档, 一般由开发人员所编写, 用于描述系统所提供接口信息的文档.大家都根据这个接口文档进行开发, 并需要一直维护和遵守.

作用

  1. 能够让前端开发与后台开发人员更好的配合,提高工作效率。(有一个统一参考的文件)

  2. 项目迭代或者项目人员更迭时,方便后期人员查看和维护

  3. 方便测试人员进行接口测试

接口文档的展现形式有很多:

  • word 文档

  • pdf 文档

  • Excel 文档

结构

  • 基本信息

    • 资源路径 (协议和域名在 "系统信息"中)

    • 请求方法

    • 接口描述

  • 请求参数

    • 请求头

    • 请求体

  • 返回数据

    • 状态码: 200 ok

    • 错误码: 开发人员自定义

解析接口文档

解析接口文档的目的是: 从接口文档中, 找出HTTP请求所需要的数据信息

主要包含: 请求方法, URL, 请求头, 请求体, 响应状态码, 描述.

以登陆模块为例:

参数名参数值
请求方法POST
URLhttps://ihrm-java.itheima.net/api/sys/login
请求头Content-Type :application/json
请求体{"mobile":"13800000002", "password":"123458888"}
响应状态码(预期结果)200 ok
错误码(开发定义的)10000 操作成功; 20001 用户名或密码错误; 99999 系统繁忙
fiddler发送HTTP请求

  1. 点击Composer

  2. 组织HTTP请求 (根据接口文档解析出来的信息, 其中部分信息是点击Execute后自动生成的)

  3. 点击右边的 Execute 按钮

  4. fiddler抓包到了请求数据和响应数据

接着, 我们可以点击抓包结果进行查看:

如果本篇文章对你有所帮助的话, 麻烦给我点一个小小的赞~💞博主后续还会更新关于测试的文章, 点点关注不迷路~💫
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值