接口测试介绍
接口
1.接口 分为软件接口 硬件接口
2.接口:系统与组件之间的交互点 ,通过交互点实现数据的交互
3.接口分类
系统之间:多个系统内部,内部系统与外部系统之间的交互
系统内部:方法与方法 模块与模块
接口测试的特点
。提前介入提早发现bug 符合质量控制迁移 (w模型)
。发现一些页面操作不了的问题
。接口测试低成本高效益
。从用户角度全面检测 不同于传统单元测试
接口测试
是对系统或者组件之间接口测试,主要检测数据交换、传递和控制管理以及依赖
接口测试原理
。模拟客户建立连接
。发送请求
。服务器处理请求并相应
。校验响应数据
实现方式
接口测试工具 JMeter、Postman
编码实现 Python+Requesrs
接口自动化测试 :用工具和代码代替人工操作测试
HTTP协议
超文本传输 基于请求与响应模式 应用层的协议
特点:基于客户端与服务器 简单快捷 灵活 无状态 无连接
url格式解析:统一资源定位符
格式
。协议部分:“http”,常见的协议有HTTP,HTTPS、FTP等
。域名部分:“www.itcast.cn”,也可以使用IP地址作为域名使用
。端口部分:“8080",端口可以省略,默认端口(HTTP:80,HTTPS:443,FTP:21)
。资源路径部分: “I/news/index.htmi"(图片、视频、音频、链接)
。查询参数部分:“uid=123&page=1",可以允许有多个参数,多个之间用“&"作为分隔符
HTTP请求
请求行:第一行位置
内容:
请求方式
资源路径
协议及版本
请求头:第一行之后空行之前
内容:
主要以键值对形式存在
重点掌握Content-Type=application/json
请求体:
前提:get 没有请求体,一般请求体再post和put请求方式中使用
位置:最后一行
内容形式:json 、HTML、 text
请求方式
。get:查询数据
。post:新增数据
。put:修改数据
。delete:删除数据
请求头
HTTP响应
组成:状态行 、响应头、响应体
状态行
在第一行信息
状态行由协议版本号、状态码、状态消息三部分组成
状态码有三位数字组成,第一个数字定义了响应的类别:
1xx:指示信息–表示请求已接收,继续处理
2xx:成功–表示请求已被成功接收、理解、接受
3xx:重定向–要完成请求必须进行更进一步的操作
4xx:客户端错误–请求有语法错误或请求无法实现.
5xx:服务器端错误–服务器未能实现合法的请求
响应头
第一行之后 空行之前 键值对的形式存在 描述服务器的相关信息
相应体
空行之后
响应数据 :xml 、json 、html等
练习
Content-type:用于描述客户端向服务器端 提交的数据格式 常见的有form表单、json等
RESTFUL风格
一种规范不是标准规定
接口测试流程
1.需求分析
2.API文档解析
3.设计测试用例
4.执行测试用例
使用工具
使用代码
5.缺陷管理与跟踪
6.生成测试报告
7.实现持续集成
API文档
接口文档,描述接口信息
为什么要写接口文档?
便于前后端开发时的协作
项目更迭或者项目人员迭代时能更好的展开工作
便于测试尽早介入
接口内容
一个规范的接口文档,要包含以下信息:
●基本信息
。接口名称、请求方法、请求路径、接口描述
●请求参数
。请求头
o请求体(包含具体的请求参数名称、参数类型、是否必须、示例、备注)
●返回数据
o不同情况的响应状态码
。响应数据(包含具体的响应数据名称、类型、是否必须、默认值、示例、备注)
●接口文档
。编写:开发
。内容:基本信息、请求参数、响应数据
■基本信息:接口名称、请求方式、接口地址(path)、 接口描述
■请求参数:
■请求头(headers)|
I
■请求体(body)
■前提: post和put是有请求体
■内容:参数名称、参数类型、是否必填、示例、备注等
■响应数据
■状态码
■响应数据:参数名称、参数类型、是否必填、示例、备注等
接口文档解析 postman验证
添加员工接口
修改员工
接口测试
安全测试
敏感数据是否隐藏
敏感数据是否可以复制
敏感数据是否加密
敏感数据加密需要一定的难度
SQL注入
接口测试用例设计思路(重点)
。单接口测试用例
。正常测试
全部必填参数
全部参数(必填+非必填)
参数组合(必填+部分非必填)
。异常测试
数据异常:长度、类型、是否为空、不满足业务等(注意:与功能测试一模- -样)
参数异常:多参、少参、无参、错误参数等(注意:这个是接口测试新出现的测试点)
业务异常:关注业务上的异常(测试关注点:各种异常状态码测试)
业务场景测试(多接口测试)
将多个业务场景涉及的接口进行组合测试
注意:接口调用的先后顺序
测试用例
3、接口测试用例设计
3.1、接口用例模板
功能测试用例模板(复习)
用例编号
用例标题
测试项目
用例级别
预置条件
测试输入
执行步骤
预期结果
接口测试用例模板
ID
模块
用例标题
接口名称
请求
请求URL
请求方法
请求头
请求数据类型
请求体(请求参数)
预期结果(响应)
响应状态码
响应数据