接口测试01-概念-RESTful 架构风格


 

 

1 接口测试:接口(重点)

1.1 概念(记住)

接口: 不同单元(或模块)进行数据交互的一个通道,还是一套规范,一套标准。

举例: USB接口、网线接口、耳机、插座 ...

1.2 作用(理解) == 规范化接口的作用
  • 项目开发中,未采用规范化接口时的缺点

1. 研发标准不统一,团队磨合难度高
2. 研发周期长
3. 可扩展性差
  • 项目目开发中,采用规范化接口带来的优点


1. 统一设计标准,更易于团队磨合
2. 缩短研发周期
3. 扩展性灵活
4. 前后端都可以使用自己熟悉的技术,只需保证最终产出符合规范即可(提高编程效率)
1.3 实现

怎么使用规范化接口?

  1. 编写一个声明接口规范的文档(API 文档 == Application Program Interface 应用程序编程接口)

  2. 前端和后端在实现时,都按照该文档的约束编写各自代码

 

 

2 接口测试:接口测试(重点)

2.1 概念

接口测试: 测试后端实现是否符合接口规范

因为后端需要使用编程语言编写业务逻辑,涉及到一些算法实现,易产生 BUG

2.2 作用(了解)
  1. 对应场景1: 提高测试效率

  2. 对应场景2: 更精准的定位 BUG

  3. 对应场景3: 发现程序中的安全隐患

2.3 实现(重点)

流 程: 首先,通过 URL 定位接口资源;然后,提交测试数据;最后,查看响应结果是否符合预期

三要素:

要素1: 怎么定位接口?(查阅API文档,文档中有详细说明)

要素2: 怎么提交测试数据?(提交格式需要查阅 API文档,需要设计用例)

要素3: 对比响应结果(状态码 + 响应体)

2.4 接口测试分类(记住)
  • WEB接口测试(BS架构)

    • 服务器接口测试 === 自实现接口

    • 外部(第三方)接口测试 === 调用第三方的接口(比如: 支付宝支付、微信支付、天气预报....)

  • 模块接口测试(CS架构)

 

3 接口测试:环境搭建_项目安装运行(不重要紧急)

3.1 项目简介
  1. 学生信息管理系统的功能是收集学生的个人信息,以便向老师提供每个学生在校或毕业生学籍的情况,还可以让学生用自己的学号去查看自己在校期间的表现。

  2. 该系统中主要有三大模块实现,分别是:学院模块、班级模块与学生模块,三大模块分别实现了学院、班级与学生信息增删改查(CRUD)管理.

  等等等....

3.2 流程(了解)  安装服务器运行环境....
3.3 数据库查看:

后期,测试过程中,我们经常需要将接口相应的结果与数据库中的数据做比对,接下来我们再介绍一下,如何查看项目的数据库数据。

4 接口测试:环境搭建_插件|工具

POSTman

5 接口测试:RESTful 架构风格

  1. 5.1 概念

RESTful 架构风格: 前辈们根据自身的经验教训,总结的一套约束 API 文档编写规范的标准

5.2 作用

保证文档的易读性

5.3 补充知识:三要素(记住)

前提:

  1. 程序的主要功能点实现: 增删改查

  2. 每种操作都涉及到三要素

  3. RESTFul 架构风格约束了每种操作的三要素实现

三要素:

  • 要素1: 怎么定位接口资源

    • URL:

      http://www.baidu.com/s

      http://127.0.0.1:8000/api/departments/

      http: 协议 (http、https、ftp、ftps、SMTP、POP3.....)

      127.0.0.1: IP地址(定位被访问的服务器)

      8000: 端口号(服务器的每一个程序都有一个独一无二的端口号,可以通过端口号定位被访问的程序)

      /api/departments/: 资源路径,可以映射程序中的某个功能点

    • Method:

      GET: 查

      POST: 增

      PUT: 改

      DELETE: 删

      比较 GET 和 POST 区别?

      • 安全: POST 隐式提交,比 GET 更安全

      • 效率: GET 请求效率更高

      • 功能: POST 功能更强大一些,提交的数据没有长度限制

  • 要素2: 怎么提交测试数据

    • QueryString = 键值对

      格式: 键1=值1& 键2=值2& 键3=值3& 键4=值4.....

    • JSON

      对象格式

      {

      ​ "键1":"值1",

      ​ "键2":"值2",

      ​ "键3":"值4",

      ​ ....

      }

      数组格式

      [值1,值2,值3 .....]

    二者比较,JSON 的可描述性更强,且JSON可以使用专门的工具解析:

    • username=huluwa&password=jiuyeye&aihao=tuhuo&aihao=tushui&aihao=yinshen

    • {

      ​ "username":"huluwa",

      ​ "password":"jiuyeye",

      ​ "aihao":["tuhuo","tushui","yinshen"]

      }

  • 要素3: 怎么对比响应结果

    • 关注点1: 状态码

      1XX: 杜绝出现,请求正常,但是服务器不给响应

      2XX: 响应正常 200 201 204 ....

      3XX: 重定向 302

      4XX: 浏览器异常 404 400 415

      5XX: 服务器异常 500

    • 关注点2: 响应体

      格式1: HTML 源码

      格式2: JSON 数据

5.4 实现(记住)
操作 要素1 要素2 要素3
URL + POST 键值对|JSON 201 + 新增后的数据
URL + DELETE 键值对 204 + 无
URL + PUT 键值对|JSON 201(200) + 修改后的数据
URL + GET 键值对 200 + 多条或单条数据

PS: RESTful 架构是约束API文档编写的一套软性而非硬性的规范

6 接口测试:实战

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM