黑马程序员——接口测试——day01——接口测试理论、HTTP协议、接口测试流程、接口文档解析

目录

  1. 接口测试理论
    1. 概念
    2. 价值
    3. 实现方式
  2. HTTP协议
    1. HTTP协议简介
    2. URL格式
    3. HTTP请求
    4. HTTP响应
  3. ihrm项目介绍
  4. 接口规范
    1. 传统风格接口
    2. RESTful风格接口
    3. 小结
  5. 接口测试流程
  6. 接口文档解析
    1. 什么是接口文档
    2. 接口文档的作用
    3. 解析接口文档
    4. 练习

1.接口测试理论

概念
  • 接口∶系统之间(外部系统与内部系统,内部系统与内部系统)数据交通的通道。
  • 接口测试︰校验接口回发的响应数据与预期结果是否一致。

  • 接口测试,可以绕过前端界面。直接对服务器进行测试! ! ! 
价值
  • 可以发现页面测试发现不了的问题
  • 符合质量控制前移理念
  • 低成本,高收益!

实现方式

工具∶

  • postman:使用简单,上手难度低。功能较少。
  • jmeter:使用难度较大。上手难度大。功能齐全。

代码:

  • Python + requests + Unittest
  • java + HttpClient 

2.HTTP协议

  • 协议︰就是规则!要求使用协议的双方必须严格遵守
HTTP协议简介
  • 简介:超文本传输协议,基于请求与响应的应用层协议。
  • 特点︰
    • 客户端、服务器模式
    • 简单快速
    • 灵活
    • 无连接
    • 无状态
URL格式 

完整语法格式:协议:/IP地址:端口号/资源路径?查询参数

  • 协议:
    • http、https。作用:指定数据传输规则.
  • IP地址:
    • 也就是域名。作用:在网络环境中,唯一定位一台主机
  • 端口号:
    • 作用:在主机上,唯一定义个应用程序。
    • 可以省略。如果省略,跟随协议。http-80。Https-443.
  • 资源路径:
    • 作用:应用对应的数据资源。
    • 可以省略。如果省略,资源路径为“/"
  • 查询参数:
    • 作用:给资源传递参数
    • 可以省略。如果省略,没有?分割符。
    • 可以有多组。每组k=v格式。各组之间用“&”隔分。

练习

请写出以下URL的各个组成部分。这个URL没有写出端口号,它的端口是什么? 

HTTP请求

产生端:

  • 一定产生于客户端。当客户端给服务器发送请求时,使用该协议。(请求报文、请求包)

整体格式

  • 请求行:请求方法、URL、协议版本
  • 请求头:k: v
  • 空行:代表请求头结束。
  • 请求体:发送给服务器请求时,携带的数据。 

【示例】:

请求行

  • 一定位于http请求协议的,第一行。格式:请求方法(空格)URL(空格)协议版本
  • 请求方法:
    • GET:查询——没有请求体
    • POST:添加(注册、登录)
    • DELETE:删除——没有请求体
    • PUT:修改
  • URL:见上
  • 协议版本:常见HTTP/1.1

请求头

  • 位于请求行之下,空行之上的部分。数据组织格式一定是k:v对。
  • Content-Type :作用,指定请求体的数据类型。
    • applicationljson:请求体数据类型为json
    • application/x-www-form-urlencoded:请求体的数据类型为表单类型。请求体 

请求体

  • 位于空行之下。
  • 有的请求协议是没有请求体。如:get、delete
  • 请求体的数据类型,受请求头中Content-Type的值影响。

练习1

  • 以下是抓取的某个HTTP协议数据包的请求报文,请问其中,请求行,请求头,请求体分别是什么? 

练习2

抓包获取ihrm系统的登录接口和tpshop登录接口,解析请求数据 

HTTP响应

产生端:

  • 一定产生与服务端。当服务器接收到 http请求协议之后,才会产生 http响应协议〈响应报文.响应包。

整体格式

  • 响应行:协议版本、状态码、状态码描述
  • 响应头:K:V格式数据。
  • 空行:代表响应头结束。
  • 响应体:服务回发给客户端的数据。几乎所有的响应包,都有响应体。 

【示例】︰

状态行

  • 一定位于http响应协议的,第一行。格式:协议版本(空格)状态码(空格)状态码描述
  • 状态码︰5类:
    • 1xx:指示信息
    • 2xx:成功
    • 3xx:重定向
    • 4xx:客户端错误
    • 5xx:服务端错误 

响应头

  • 位于响应行之下,空行之上的部分。数据组织格式一定是k:v对。

响应体

  • 位于空行之下。
  • 几乎所有响应协议都有响应体。
  • 响应体中包含的数据,是接口测试过程中,所要使用的实际结果!! 

练习1

  • 以下是HTTP协议的响应报文内容,请问,状态行、响应头、响应体分别是哪几个部分? 

练习2

  • 抓包获取ihrm系统的登录接口和tpshop登录接口,解析响应数据 

3.ihrm项目介绍

  • 人力资源管理系统
  • URL: http://ihrm-test.itheima.net/
  • 模块:
    • 员工管理
    • 组织架构(部门管理)
    • 招聘管理
    • 考勤管理
    • 绩效管理

4.接口规范

传统风格接口
  • 接口统一采用get/post 实现所有操作。
  • URL与资源不是——对应的。在URL中查看出,是何种操作
  • 状态码统一返回200

RESTful风格接口
  • 接口使用的方法,与http协议的请求方法,一 一对应。
  • get -查、post -增、put -改、delete -删
  • URL与资源――对应!不能从URL中,看出是何种操作。需要通过结合请求方法来识别何种操作。响应状态码使用较为全面。 

小结
  • 传统风格接口:只用get、post方法。URL不唯一。统一返回200
  • RESTful风格接口∶URL唯一,定位资源。结合请求方法对应不同操作。返回状态码较灵活。 

5.接口测试流程

  1. 需求分析(产品经理的需求文档)
  2. 接口文档解析(开发编写的接口API文档)
  3. 设计接口测试用例(编写Excel表格形式的用例)
  4. 准备接口测试脚本
    1. postman工具生成脚本
    2. python 代码编写脚本
  5. 执行测试用例,跟踪缺陷
  6. 生成接口测试报告
  7. 接口自动化持续集成(可选)

6.接口文档解析

什么是接口文档
  • 也叫API文档,一般由后端开发工程师编写。用来描述接口信息的文档。
接口文档的作用
  • 协同:团队人员工作协同配合
  • 约束:项目更新修改同步维护
解析接口文档
  • 为什么要解析
    • 通过分析接口文档,熟悉接口信息。
    • 通过接口文档获取,接口测试所使用的请求数据、预期结果。
  • 解析的核心目标
    • 请求报文关键数据
      • 请求方法、URL、请求数据(请求头、请求体)
    • 响应报文关键数据
      • 响应状态码、响应数据(响应体)
练习
  • 解析人力资源管理系统接口文档,将解析结果,写入《接口文档解析模版.xlsx》 

  • 19
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿瞒有我良计15

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值