目录
一、接口测试基础
1.接口
2.软件接口类型
二、接口测试
1.接口测试原理
2.接口测试特点
(1)测试可以提前介入,提早发现Bug,符合质量控制前移的理念
(2)可以发现页面操作发现不了问题
(3)接口测试低成本高效益(底层的一个Bug能够引发上层8个左右Bug,接口测试可以实现自动化)
(4)不同于传统的单元测试是从用户的角度对系统进行全面的检测
3.接口测试实现方法
4.接口自动化
三、网络协议
1.HTTP协议
2.URL
四、请求与响应
1.http请求
拓展:常见方法
2.HTTP响应
五、RESTful接口规范
1.定义
2.RESTful接口分格
3.RESTful架构特点
六、接口测试流程
一、接口测试基础
1.接口
接口的概念:
指系统或组件之间的交互点,通过这些交互点可以实现数据的交互(数据交互的通道)
接口分类:
硬件接口与软件接口,作为测试工程师,更多关注软件层面的接口
2.软件接口类型
接口测试分类有许多种,按照范围划分:系统之间的接口和程序内部的接口
系统之间的接口:多个内部系统之间的交互,内部系统与外部系统之间的交互
程序内部的接口:方法与发放之间,模块与模块之间的交互
二、接口测试
接口测试,是对系统或者组件之间的接口进行测试,主要是校验数据的交换、传递和控制管理过程、以及相互逻辑依赖关系
1.接口测试原理
模拟客户端向服务器发送请求,服务器接收请求后进行相应的业务处理,并向客户端返回响应数据,检查响应数据是否符合预期
解释
我们通过工具代码向服务器发送请求,该请求按照接口文档的规定进行发送,测试返回的相应是否符合预期的结果,就可以检验的结果,就可以检验接口是否存在问题了
2.接口测试特点
(1)测试可以提前介入,提早发现Bug,符合质量控制前移的理念
根据W测试模型(双V模型)提倡测试提前介入,提前介入测试,可以尽早发现问题,越早发现问题,成本越小
(2)可以发现页面操作发现不了问题
页面可能在前端进行了操作限定,比如注册功能中密码框输入的长度等,在进行页面测试时,是不能超过长度输入的,但通过访问接口,可以自动以密码的长度,接口测试可以发现页面操作发现不了问题
(3)接口测试低成本高效益(底层的一个Bug能够引发上层8个左右Bug,接口测试可以实现自动化)
接口测试通过几行代码,执行多条用例,可以大大提高工作的效率,节约企业成本
(4)不同于传统的单元测试是从用户的角度对系统进行全面的检测
3.接口测试实现方法
(1)使用接口测试工具来实现·(比如:JMeter、Postman)
接口测试的本质是通过像接口发送请求,查看响应是否正确,现阶段主要postman工具来测试接口测试,JMeter会在后续的性能测试中重点讲解
(2)通过编写代码实现(比如:Python + Requests)
接口测试的本质另一种方式就是通过代码实现,由于本质就是接口发送请求,同样可以使用代码实现,并且代码相比工具实现起来更加灵活,但要求测试人员具有一定的coding能力
4.接口自动化
测试分类:
按照是否自动化进行测试分类,可以分为:
-- 手工测试
-- 自动化测试
接口自动化猜测是:
针对自动胡测试,用工具或代码替代人进行测试的一种活动
三、网络协议
1.HTTP协议
HTTP协议,超文本传输协议,是一个基于请求与响应模式的、应用层的协议,也是互联网应用最为广泛的一种网络协议(传输超文本--> 超文本)
2.URL
URL:统一资源定位符,是互联网上标准资源的地址。HTTP使用URL来建立连接和传输数据
格式:
http :// www. jiyun.con: 8080/ news/index.html ?uid=128&page=1
(1)写一部分:http,常见的协议HTTP.HTTPS.FTP
(2)域名部分:www.jeremyblong.cn,也可以使用IP地址作为域名使用
(3)端口部分:8080,端口可以省略。默认端口(HTTP:80,HTTPS:443,FTP:21)
(4)资源路径部分:news/index.html
(5)查询参数部分:uid=128&page=1,查询参数通过”?“与URL进行分离,可以允许有多个参数,多个之间用”&“作为分隔符
四、请求与响应
1.http请求
HTTP请求由三部分组成,分别是:请求行、请求头、请求体
请求行:请求行用来说明请求方法,要访问的资源,要访问的资源以及所使用的协议版
POST 用户登录 - 禅道 HTTP/1.1 请求方法 URL地址 协议/版本 Host: demo.zentao.net # 主机名 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0 # 用户代理信息 Accept: text/html,application/xhtml+xml,application/xml;q=0.9, /;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate Referer: 用户登录 - 禅道 Content-Type: application/x-www-form-urlencoded Content-Length: 54 Connection: keep-alive Upgrade-Insecure-Requests: 1 // 该空行表示请求头数据已经结束 account=demo&password=efc4a3b32e48054865e5a8321cfda3e4
拓展:常见方法
(1)GET:从服务器获取资源(一项或多项)
(2)POST:在服务器新建一个资源
(3)PUT:在服务器更新资源(客户端提供改变后的完整资源
(4)DELETE:从服务器删除资源
其他请求方法:
(5)HEAD:请求获取由Request-URL所标识的资源的响应消息报头
(6)TRACE:请求服务器收到请求信息,主要用于测试或诊断
(7)CONNECT:保留将来使用
(8)OPTINS:请求查询服务器的性能,或者查询与资源相关的选项和需求
请求头:
请求头紧接着请求行,请求头部由键值对组成,每行一对. 请求头部通知服务器有关于客户端请求的信息
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: 在表单中进行文件上传时使用
请求体:
(1).请求体不在GET方法中使用,经常在POST、PUT方法中使用
(2).请求体的数据可以是:表单数据、文本、XML、JSON
(3).与请求数据相关的最常使用的请求头是Content-Type(application/json)和Content-Length
2.HTTP响应
HTTP响应也由三个部分组成,分别是:状态行、响应头、响应体
1、状态行:状态行由协议号、状态码、状态消息三部分组成
200系列:
200 成功 服务器已成功处理了请求
300系列:
301 永久移动 请求的网页已永久移动到新位置,即永久重定向 # 重点
302 临时移动 请求的网页暂时跳转到其他页面,即暂时重定向 # 重点
400系列:
400 错误请求 服务器无法解析该请求 # 重点
401 未授权 请求没有进行身份验证或验证未通过
403 禁止访问 服务器拒绝此请求 # 重点
404 未找到 服务器找不到请求的网页
500系列
500 服务器内部错误 服务器遇到错误,无法完成请求 # 重点
501 未实现 服务器不具备完成请求的功能
502 错误网关 服务器作为网关或代理,从上游服务器收到无效响应
504 网关超时 服务器作为网关或代理,但是没有及时从上游服务器收到请求
505 HTTP版本不支持 服务器不支持请求中所用的HTTP协议版本
2、响应头
响应头用于描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处理响应数据
3、响应体
响应体就是响应的消息体,数据可以是普通文本、XML、JSON、HTML源码
五、RESTful接口规范
1.定义
RESTful是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。
REST:即(Representational State Transfer)的缩写。词组的翻译是"表现层状态转化"。如果一个架构符合REST原则,就称它为RESTful架构。
2.RESTful接口分格
| 操作 | 请求方式 | URL | 成功状态码 |
|---|---|---|---|
| 查询某个用户 | GET | http://127.0.0.1:8080/myweb/users/1 | 200 |
| 查询所有用户 | GET | http://127.0.0.1:8080/myweb/users | 200 |
| 添加用户 | POST | http://127.0.0.1:8080/myweb/users | 201 |
| 修改用户 | PUT/post | http://127.0.0.1:8080/myweb/users/1 | 201 |
| 删除用户 | DELETE | http://127.0.0.1:8080/myweb/users/1 | 204 |
3.RESTful架构特点
特点:
(1).每一个URL代表一种资源
(2).客户端和服务器之间,传递这种资源的某种表现层
(3).客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化
(4).接口之间传递的数据最常用格式为JSON。
常用HTTP动词有四个
GET:从服务器获取资源(一项或多项)
POST:在服务器新建一个资源
PUT:在服务器更新资源(客户端提供改变后的完整资源)
DELETE:从服务器删除资源
六、接口测试流程
(1)需求分析: 主要依据需求文档
(2)接口文档解析: 一般是由开发人员编写接口文档(API文档)
(3)设计测试用例
(4)执行测试
- 使用接口测试工具实现
- 通过编写代码实现
(5)接口缺陷管理与跟踪
(6)生成测试报告
(7)接口自动化持续集成(可选)



