【软件测试】接口测试笔记1


前言

接口测试基础——知识点
1.接口及接口测试概念
2.HTTP协议
3.接口规范
4.接口测试流程
5.项目环境说明


一、接口及接口测试概念

1. 接口

分为:硬件接口和软件接口。以下为软件接口

  • 接口是指系统或组件之间的交互点,通过这些交互点可以实现数据的交互。 传递、交互数据

2. 接口类型

  • 按照协议划分:http、tcp、IP……
  • 按照语言划分:C++、java、php……
  • 按照范围划分:系统之间的接口和程序内部的接口
    • 系统之间的接口:多个内部系统之间的交互,内部系统与外部系统之间的交互

    • 在这里插入图片描述

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

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

3. 接口测试

  • 概念:是对系统或组件之间的接口进行测试,主要校验数据的交换传递以及相互逻辑依赖关系的正确性。
  • 原理:
    • 接口测试,主要针对的测试目标——服务器
    • 怎么测:模拟客户端向服务器发送请求,服务器接收请求后进行相应的业务处理,并向客户端返回响应数据,检查响应数据是否符合预期。
    • 工具:fiddler、Postman、JMeter
    • 代码:python+UnitTest框架+Requests框架
    • 测什么:测试服务器针对客户端请求,回发的响应数据是否与预期结果一致。(断言
  • 特点:
    • 测试可以提前介入,提早发现Bug,符合质重控制前移的理念
    • 可以发现一些页面操作发现不了的问题
    • 接口测试低成本高效益(底层的一个Bug能够引发上层8个左右Bug,接口测试可以实现自动化)
    • 不同于传统的单元测试,接口测试是从用户的角度对系统进行全面的检测

4. 接口自动化测试

自动化测试:是把以人为驱动的测试行为转化为机器执行的一种过程。

接口自动化测试:

  • 借助工具、代码,模拟客户端发送请求给服务器,借助断言自动判断预期结果和实际结果是否一致
  • 是让程序或工具代替人工自动的完成对接口进行测试的一种过程。

二、HTTP协议

协议:即规则。要求通信双方必须严格遵守

1. HTTP协议简介

  • HTTP(HyperText Transfer Protocol):超文本传输协议,是一个基于请求与响应模式的、应用层的协议,也是互联网上应用最为广泛的一种网络协议。
  • 特点:
    • 支持客户端/服务器模式
    • 简单快速
    • 灵活
    • 无连接
    • 无状态

2. URL

  • URL(Uniform Resource Locator):统一资源定位符,是互联网上标准资源的地址。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”。传递给资源路径对应的数据——用?与资源路径隔分。查询参数内部用&隔分多个键值对

注:资源路径无内容时,默认为“/”
在这里插入图片描述

3. HTTP请求

  • 作用:
    • 客户端(app、浏览器)发送请求给服务器时使用的协议——http请求协议
    • 规定 发送给服务器的数据传输的语法格式。
    • http请求包 或 http请求报文
  • 整体格式:
    • 请求行:请求方法(空格)URL(空格)协议版本
    • 请求头:Key:Value
      • User-Agent: 描述请求发送端的浏览器类型
      • Content-Type: 描述请求体的数据类型
    • 空行:表示请求头数据已经结束
    • 请求体: 请求发送时携带的数据。数据类型对应Content-Type的值
      • post、put 有请求体
      • get、delete无请求体
        在这里插入图片描述
  • fiddler抓包验证
    在这里插入图片描述
    在这里插入图片描述
  • 小结:
    • 请求行:用于说明请求方法、要访问的资源以及所使用的协议版本
      • GET:查询 从服务器获取资源(一项或多项)
      • POST:添加(常用于登录)在服务器新建一个资源
      • PUT:修改 在服务器更新资源(客户端提供改变后的完整资源)
      • DELETE:删除 从服务器删除资源
      • 其他请求方法(了解):
        • HEAD:请求获取由Request-URI所标识的资源的响应消息报头
        • TRACE:请求服务器回送收到的请求信息,主要用于测试或诊断
        • CONNECT:保留将来使用
        • OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求
    • 请求头:键值对组成,每行一对。请求头部通知服务器有关于客户端请求的信息
      • User-Agent:产生请求的浏览器类型
      • Accept:客户端可识别的内容类型列表
      • Content-Type:请求体数据的类型,常见的类型有:
        • text/html:HTML格式
        • text/plain:纯文本格式
        • image/jpeg:jpg图片格式
        • application/json:JSON数据格式
        • application/x-www-form-urlencoded:form表单数据被编码为key/value格式发送到服务器(表单默认的交数据格式)
        • multipart/form-data:在表单中进行文件上传时使用
    • 请求体:
      • GET、DELETE方法没有请求体
      • PUT、POST方法有请求体
      • 数据值的组织形式,受Content-Type的值影响。

4. HTTP响应

  • 作用:
    • 服务器端,针对客户端发送的http请求u,回发响应数据——http应答
    • 规定 回发给客户端的数据组织格式
    • http响应包 或 http响应报文
  • 整体格式:
    • 响应行(状态行): 协议版本(空格)状态码(空格)状态描述
    • 响应头:语法格式K:V
      • Content-Type:描述响应体中数据类型
    • 空行:代表响应头结束
    • 响应体:绝大多数不为空。(请求成功:回发数据,失败:回发错误信息)
      • 数据类型受Content-Type值影响。
        在这里插入图片描述
  • 小结:
    • 状态行(响应行):协议版本号、状态码、状态消息三部分组成

      • 状态码有三位数字组成,第一个数字定义了响应的类别:
        • 1xx:指示信息——表示请求已接收,继续处理
        • 2xx:成功——表示请求已被成功接收、理解、接受。常见:200、201
        • 3xx:重定向——要完成请求必须进行更进一步的操作
        • 4xx:客户端错误——请求有语法错误或请求无法实现。常见:404(不存在)、403(无权限)
        • 5xx:服务器端错误——服务器未能实现合法的请求
      • 状态码描述:一般与状态码唯一对应。200——ok;404——file not found
    • 响应头 :响应头用于描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处理响应数据

      • 语法格式:K:V
      • Content-Type:描述响应体中数据类型
      • Content-Length:响应体的大小。可以不写,浏览器会自动求取。一旦写,必须准确
    • 响应体:回发给客户端的消息内容,数据可以是普通文本、XML、JSON、HTML源码
      在这里插入图片描述

三、传统风格接口

  • 特点:
    • 请求方法只使用get、post即可
    • URL不唯一。同一个操作可以对应不同的URL
    • 状态码的使用较单一。200最常见。
      在这里插入图片描述

四、RESTful风格接口

1. 定义:

  • 一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。
  • REST(Representational State Transfer)。表现层状态转化。如果一个架构符合REST原则,就称它为RESTful架构。

2. RESTful接口风格

在这里插入图片描述

3. RESTful架构特点

  • 每一个URL代表一种资源
  • 客户端和服务器之间,传递这种资源的某种表现层
    • 表现层:数据的不同表现形式(如:图片、文字表现同一个数据对象)
  • 客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"
    • GET:从服务器获取资源(一项或多项)
    • POST:在服务器新建一个资源
    • PUT:在服务器更新资源(客户端提供改变后的完整资源
    • DELETE:从服务器删除资源
  • 接口之间传递的数据最常用格式为JSON。

五、接口测试流程

  1. 需求分析
    • 主要依据需求文档
  2. 接口文档解析
    • 一般是由开发人员编写接口文档(API文档)
  3. 设计测试用例
  4. 执行测试
    • 使用接口测试工具实现 postman、JMeter
    • 通过编写代码实现 python+Requests+UnitTest
  5. 提交、跟踪缺陷
  6. 生成测试报告
  7. 接口自动化持续集成(可选)

六、接口文档

1. 定义

  • 接口文档:又称为API文档,一般是由开发人员编写,描述系统所提供接口信息的文档。开发团队根据接口文档进行开发,并需要一直维护和遵守。
  • 作用:
    • 能够让前端开发与后台开发人员更好的配合,提高工作效率。(有一个统一参考的文件)
    • 项目迭代或者项目人员更迭时,方便后期人员查看和维护
    • 方便测试人员进行接口测试

2. 展现形式

word、excel、pdf……

3. 结构

  1. 基本信息

    • 接口名称、资源路径/请求路径(协议和域名在系统信息中)、请求方法、接口描述
    • 在这里插入图片描述
  2. 请求参数

    • 请求头
    • 请求体:实现该接口使用的数据及对应类型(包含具体的请求参数名称、参数类型、是否必须、示例、备注)
    • 在这里插入图片描述
  3. 返回数据

    • 不同情况的响应状态码
    • 错误码(自定义状态码)
    • 响应数据(包含具体的响应数据名称、类型、是否必须:默认值、示例、备注)
    • 在这里插入图片描述

4. 接口文档解析

  • 接口文档的解析本质:从接口文档中,找出http请求所需要的数据信息请求方法
    • 主要包含:请求方法、URL、请求头、请求体、响应状态码、描述
  • 以“登录”为例:
    • 请求方法:POST
    • URL: http://ihrm-test.itheima.net/api/sys/login
    • 请求头:Content-Type:application/json
    • 请求体:{“mobile”:"13800000002”,“password”:“123456”}
    • 响应状态码:200
      • 错误码:
        • 10000:操作成功!
        • 20001:用户名或密码错误
        • 99999:抱歉,系统繁忙,请稍后重试!

5. 使用fiddler发送http请求

在这里插入图片描述


网课来源

【黑马测试】测试基础544-573

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值