接口测试
1.1、接口
接口概念
指系统或组件之间的交互点,通过这些交互点可以实现数据的交互(数据加护用的)
系统之间的接口:多个内部系统之间的交互
程序内部的接口:方法与方法之间,模块与模块之间的交互
2.接口测试
接口测试:是对系统或组件之间的接口进行测试,主要是校验数据的交互、传递和控制管理过程,以及相互逻辑依赖关系
2.1 接口测试原理
模拟客户端向服务器发送请求,改请求按照接口文档的规定进行发送,测试返回的响应是否符合预期的结果,就可以检验接口是否存在问题了
2.2 接口测试点
2.2.1测试可以提前介入,提早发现bug,符合质量控制前移的理念
2.2.2可以发现一些页面操作发现不了的问题
2.2.3接口测试低成本高效益
2.2.4不同于传统的单元测试,接口测试时从用户的角度对系统进行全民的检测
2.3接口测试实现方式
2.3.1使用接口测试工具来实现(比如:JMeter、Postman)
2.3.2通过编码来实现(比如 python+requests)
2.4接口自动化
照是否自动化进行测试分类,可以分为:
--手工测试
--自动化测试
针对接口进行测试,用工具或代码代替人进行测试的一种活动
3、HTTP
HTTP是封装个的TCP/IP协议,让其更能适合互联网中的数据传输。全称:超文本传输协议
三部分
请求行:请求方式,请求的URL,请求的协议版本(第一行)
请求头:以K:V来记录请求的属性(第一行到空格之间)
请求体:携带请求的参数(空格一下)
三次握手
原因:建立的最少最精简的次数
客户端请求建立连接
服务器端收到建立连接请求,请求与客户端建立连接
客户端收到服务器的建立请求
四次挥手
原因:为了保证发送的数据不丢失
客户端请求断开连接
服务器收到断开连接
服务器再向客户端请求断开连接
客户端收到断开连接
TCP/IP :(文件传输、登录注册)
建立连接,安全的请求方式
优点:安全,保证数据传输的时候不会丢失,而且还知道把数据传给了谁
UDP:(视频通话)
不建立连接的,不安全的广播方式
优点:报文简单,传输速度快,效率高
get和post区别
get:url传参,没有请求体,传递的数据大小有限制,不够安全
post:参数传递通过请求体,没有大小限制,比get安全
HTTP请求状态
2xx:请求被成功处理
3xx:重定向
4xx:请求的时候错误在客户端
5xx:服务端的问题
4.接口测试流程
4.1需求分析:主要依据需求文档
4.2接口文档解析:一般是由开发人员编写接口文档
4.3设计测试用例
4.4执行测试
使用接口
通过编写代码实现
4.5接口缺陷管理与跟踪
4.6生成测试报告
4.7接口自动化持续集成(可选)
功能测试流程:
测试计划------->需求分析------>需求审评------>设计测试用例------->执行用
例------>缺陷报告与回归------>测试报告------->验收/上线
5、RESTful架构特点
特点:
5.1每一个url代表一种资源
5.2客户端和服务器之间,传递这种资源的某种表现层
5.3客户端通过四个HTTP动词,对服务器端资源进行操作,实现“表现层状态转换”
5.4接口之间传递的数据最常用格式为json
常用的HTTP动词有四个
GET:从服务器获取资源(一项或多项)
PUT:在服务器更新资源(客户端提供改变后的完整资源)
DELETE:从服务器删除资源
POST:在服务器新建一个资源
6.charles相关笔记
Charles是一个HTTP代理服务器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接受的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request、response和HTTP headers(包含cookies与caching信息)
主要功能
支持SSL代理。可以截取分析SSL的请求。
支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
支持AJAX调试。可以自动将json或xml数据格式化,方便查看。
支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。
支持重发网络请求,方便后端调试。
支持修改网络请求参数。
支持网络请求的截获并动态修改。
检查HTML,CSS和RSS内容是否符合W3C标准
常用功能
试图切换
将chares设置成系统代理
Proxy-->Windows Proxy
安装流程安装好并且配置好之后,进入浏览器,查看Charles抓取的数据
抓包是需要请求HTTPS 默认我们是看不到https的请求数据,我们需要安装证书
点击winwods 一直下一步下一步,直到导入成功,剩下的配置与max下配置相同
删除证书
设置->通用->描述文件与设备管理,删除指定的证书即可
Charles有任何错误以及达不到需要的效果,重启可以解决百分之八十的问题
嘻嘻!!!