• 接口测试学习第一天


    1.  接口

    接口的定义:是指系统或组件之间的交互点,通过这些交互点可以实现数据的交互。(数据交互的通道)

    接口的分类:硬件接口和软件接口;我们这里只关注软件层面的接口;

    1.1  接口的类型

    接口测试分类有许多种,按照范围划分:系统之间的接口和程序内部的接口;

    系统之间的接口:多个内部系统之间的交互,内部系统与外部系统之间的交互;

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

    2、接口测试

    2.1 概念

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

    2.2  接口测试原理

    模拟客户端向服务器发送请求,服务器接收请求后进行相应的业务处理,并向客户端返回响应数据,检查响应数据是否符合预期;

    •  原理
      •  接口测试,主要针对的测试目标---服务器
    • 怎么测试?
      •  模拟客户端,向服务器发送请求。
    • 用什么测?
      • 工具:fiddler、postman、jmeter
      • 代码:python+UnitTest框架+Requests框架
    • 测什么?
      • 测试服务器针对客户端请求,回发的响应数据是否与预期结果一致!
        • 人眼对比!
        • 断言!

    2.3    接口测试的特点

    • 测试可以提前介入,提早发现bug,符合质量控制前移的理念;
    • 可以发现一些页面操作发现不了的问题;
    • 接口测试低成本高收益(底层的一个Bug能够引发上层8个左右Bug,接口测试可以实现自动化);
    • 不同于传统的单元测试,接口测试是从用户的角度对系统进行全面的检测;

    2.4  接口测试的实现方式

    • 使用接口测试工具类来实现(比如:JMeter、Postman)
    • 通过编写代码来实现(比如:Python+Requests)

    什么是自动化接口测试?

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

    2.5 接口测试流程

    • 1、需求分析
    •         主要依据需求文档
    • 2、挑选需要做接口测试的功能
    • 3、接口文档解析
    • 4、设计测试用例
    • 5、执行测试
    •         使用接口测试工具实现
    •         通过编写代码实现
    • 6、接口缺陷管理与跟踪
    • 7、接口自动化持续集成

    3.  HTTP协议介绍

    HTTP:(HyperText Transfer Protocol) 超文本传输协议,是一个基于请求与响应模式的、应用层的协议,也是互联网上应用最为广泛的一种网络协议;

    3.1  HTTP协议的特点

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

    3.2  应用层、传输层、网络层、链路层的关系

    应用层、传输层、网络层、数据链路层_Anita-Sun的博客-CSDN博客_应用层传输层网络层数据链路层应用层包括:应用服务 (FTP(FileTransfer Protocol,文件传输协议)和DNS(Domain NameSystem,域名系统))发送HTTP请求DNS域名解析系统:提供通过域名(www.baidu.com)查找IP地址(102.182.1.1),或逆向从IP地址反查域名的服务。传输层TCP UDP分割数据(HTTP请求报文),并在各个报文上打上标记序号及端口号后转发给网络层。TCP协议:提供可靠的字节流服务(将大块数据分割成以报文段(segment)为单位的数据包进行https://blog.csdn.net/AnitaSun/article/details/115621590ip的作用:在网络环境当中标志唯一主机;

    端口的作用:在一台主机上长到唯一应用;

    应用层(Http):端口层-IP层-链路层;

    4.   URL

    URL:  (Uniform Reaource Locator)统一资源定位符,是互联网上标准资源的地址。HTTP使用URL来建立链接和传输数据;

    URL格式

    http://www.test.cn:8080/news/index.html?uid=123&page=1;

    • 协议部分:http,常见的协议有Http,Https,ftp等;规定数据传输的方式
    • 域名部分:www.test.cn,也可以使用ip地址作为域名使用;在网络环境中找到主机
    • 端口部分:8080,端口可以省略,默认端口(http:80,https:443,ftp:21);在网络主机上,标识一个进程(应用程序)
    • 资源路径部分:/news/index.html;标识网络资源(文件、图片、音视频、变量等)
    • 查询参数部分:uid=123&page=1,可以允许有多个参数,多个之间用&作为分隔符;

    5、HTTP请求

    作用:

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

    整体格式:

    • 请求行:http请求第一行。请求方法(空格)URL(空格)协议版本;
    • 请求头:语法格式:k:v
      • user-Agent:描述当前本地浏览器的类型;防止客户端恶意攻击;
      • content_type:标识请求体的数据类型
    • 空行:代表http请求头结束;
    • 请求体:请求发送时携带的数据;数据类型content-Type的值
      • Post和Put有请求体;
      • get和delete没有请求体;

    请求行

    • http请求方法:(大小写无所谓)
    • get:     查询
    • post:    添加。(常用在登录)
    • put:       修改。
    • DeLETE:删除;

    请求头

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

     请求体

    • get、delete方法没有请求体;
    • put、post方法有请求体;
    • 数据值的组织形式。受content-Type的值影响;

    6、HTTP响应

    作用:

    • 服务器端,针对客户端发送的http请求,回发响应数据;
    • 规定回发给客户端的数据组织格式;

    整体格式:

    • 响应行(状态行):协议版本(空格)状态码(空格)状态描述
    • 响应头:语法格式:K:V
    • content-Type:描述响应体中的数据类型;
    • 空行:代表响应头结束;
    • 响应体:绝大多数不为空。(请求成功:回发数据,失效:回发错误信息)
    • 数据类型受content_type值影响;

     状态行:

    • 状态行由协议版本号、状态码、状态消息三部分组成;
    • 状态码有三位数字组成,第一个数字定义了响应类别;
      • 1XX:指示信息-表示请求已接收,继续处理;
      • 2XX:  成功-表示请求已被成功接收、理解、接受;常见200,201
        • 201状态码表示服务器已经完成了客​​户端接收到的请求,并根据接收到的请求创建了一个新的资源
      • 3XX:重定向-要完成请求必须进行更进一步的操作;待访问的资源需要重新指定路径访问;
      • 4XX:客户端错误-请求有语法错误或请求无法实现;常见404,403
        • 403什么意思详见:

    网页显示403是什么意思_聚名网的博客-CSDN博客_返回403403 forbidden是什么意思?网页显示403是什么意思?相信很多人都会有这样的疑问,下面小聚为您详解一下以上问题。https://blog.csdn.net/zacji/article/details/121471980

    • 5XX:服务端错误-服务器未能实现合法的请求;

    响应头:

    响应头用于描述服务端的基本信息,以及数据的描述。服务器通过这些数据的描述信息,可以通知客户端如何处理响应数据;

    语法格式:K:V

    Content-Type:值为响应体的数据类型;

    Content-Length:响应体的大小,可以不写,浏览器会自动求取,一旦写,必须准确!

    响应体:

    响应体就是响应的消息体。数据可以是普通文本、XML、JSON、HTML源码;

    7、RESTful接口风格

    定义

    一种软件架构风格、设计风格、而不是标准、只是提供了一组设计原则和约束条件;

    REST:(Representational State Transfer)的缩写,词组的翻译是表现层状态化;如果是一个架构符合REST原则,就称为RESTful架构;

    特点:

    • 1、每一个URL代表一种资源;
    • 2、客户端和服务器之间、传递这种资源的某种表现层;
    • 3、客户端通过四个HTTP动词;对服务器端资源进行操作,实现表现层状态转化;
    • 4、接口之间传递的数据最常用的格式为JSON;

    常见的HTTP动词有以下四个:

    • get: 从服务器获取资源(一项或多项);
    • post:在服务器新建一个资源;
    • PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源);
    • DELETE(DELETE):从服务器删除资源;

    8、接口测试流程

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

    9、接口文档

    作用:

    • 1、能够让前端开发与后台开发人员更好的配合,提高工作效率;
    • 2、项目迭代或者项目人员更新迭代时,方便后期人员查看和维护;
    • 3、方便测试人员进行接口测试;

    展现形式:

    • 1、word格式
    • 2、excel格式
    • 3、pdf格式

    结构:

    • 1、基本信息
      • 资源路径(协议和域名在系统信息中)
        • 请求方法
        • 接口描述
    • 2、请求参数
      • 请求头
        • Content-Type:描述请求体的数据类型!
      • 请求体
        • 实现该接口使用的数据及对应类型
    • 3、返回数据:
      • 状态码200
      • 错误码(自定义状态码)
        • 码值
        • 描述信息

    9.1  接口文档解析

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

  • 相关阅读:
    文本情感倾向查询易语言代码
    JavaScript 基础1:变量与数据类型及其转换
    kubernetes——快速部署
    一个包搞定中文数据集: datasetstore
    跟着cherno手搓游戏引擎【25】封装2DRenderer,封装shader传参,自定义Texture
    Transformer
    springMVC的学习【上】
    怎样把英语视频字幕翻译成中文
    PAM从入门到精通(二十一)
    使用百度地图路书为骑行视频添加同步轨迹
  • 原文地址:https://blog.csdn.net/weixin_41812355/article/details/127908655