赞
踩
接口测试
接口:系统之间数据交互的通道。
硬件接口
软件接口
接口测试:基于不同的输入参数,校验接口响应数据与预期数据是否一致。
为什么要学接口测试?
提前介入测试、尽早发现问题
中级测试工程师必备技能
接口测试学什么?
接口测试用例设计
工具实现接口测试
代码实现接口测试
项目介绍
项目名称:客达天下
项目类型:销售管理系统 (CRM)
项目特点:
前后端分离
功能通用性强
熟悉项目
项目角色:销售人员、销售经理、财务人员等
项目业务:线索管理、合同管理等
项目技术:
待测接口
需求:完成管理业务及相关单位模块接口测试。
- 合同管理业务
- 登录
- 添加课程
- 上传合同
- 新增合同
- 课程管理模块
- 添加课程
- 修改课程
- 查询课程
- 删除课程
接口测试流程
URL
URL:是互联网上标准资源的地址,一般称为统一资源定位符。
组成:协议://hostname[:port]/path/ [?查询参数1 & 查询参数2]
示例:
HTTP协议
HTTP:超文本传输协议,基于请求与响应的应用层协议
作用:规定了客户端与服务器之间信息传递规范,是二者共同遵守的协议。
组成:
HTTP请求:定义请求数据格式
请求行、请求头、请求体
HTTP响应:定义响应数据格式
状态行、响应头、响应体
HTTP —请求行
位置:请求数据第一行
作用:说明需求方法、访问的资源、协议版本
常用请求方法:
GET:从服务器获取资源
POST:在服务器新建一个资源
PUT:在服务器更新资源
DELETE:从服务器删除资源
HTTP请求—请求头
位置:请求数据第二行到空白行之间
作用:通知服务器客户端请求信息
特点:请求头部由键值对组成,每行一对
Content-Type:请求体数据类型
text/html:HTML格式
image/jpeg:jpg图片格式
application/json:JSON数据格式
application/x-www-form-urlencoded:表单默认的提交数据格式
multipart/form-data:在表单中进行文件上传时使用
HTTP请求—请求体
位置:空白行之间的内容
作用:传输数据实体
注意:请求体常在POST、PUT方法中使用
常配合的请求头:Content-Type和Content-Length
请求报文中可以没有请求体数据
HTTP响应—状态行
位置:响应数据第一行
作用:描述服务器处理结果
内容:状态行由协议版本号、状态码、状态消息组成
状态码:三位数字组成,第一个数字定义响应类别
- 1XX:提示信息
- 2XX:成功
- 3XX:重定向
- 4XX:客户端错误
- 5XX:服务端错误
HTTP响应—常见的响应状态码
HTTP响应—响应头
位置:第二行开始到空白行之间
作用:描述客户端要使用的一些附加信息
特点:响应头由键值对组成,每行一对
HTTP响应—响应体
位置:响应数据空白行之后
作用:服务器返回的数据实体
特点:有图片、json、xml、html等多种类型
案例:
接口规范
作用:让前端开发与后台接口开发人员更好的配合,提高工作效率
常见接口规范:
传统接口风格
RESTful接口风格
传统接口风格
示例:对用户进行操作的相关接口,包括增删改查
RESTful
RESTful:一种网络应用程序的设计风格和开发方式,提供了一组设计原则和约束条件。
示例:
特点:
区别
总结
介绍:Postman是一款接口调试工具
特点:支持 Mac、Windows 和 Linux
下载:
https://www.getpostman.com
获取验证码
- 需求:使用postman访问验证码接口,并查看响应结果
-
- 地址:
- http://kdtx-test.itheima.net/api/captchaimage
-
- 实现步骤
- 1.设置请求方式
- 2.输入接口地址
- 3.点击发送请求
- 4.查看响应结果
登录
- 需求:
- 使用Postman访问验证码接口,并查看响应结果
- 说明:
- 地址:http://kdtx-test.itheima.net/api/login
- 方法:post
- 请求数据:
- 请求头:Content-Type:application/json
- 请求体:["username": "admin","password":
- "admin 123","code":"2","
- uuid":"验证码接口返回结果中的数据值"]
- 实现步骤:
- 1.设置请求方式
- 2.输入接口地址
- 3.点击发送请求
- 4.查看响应结果
总结
问题:每次登录之前都需要手动复制验证码数据
思路:
自动关联数据
环境创建与选择
案例:使用自动关联技术,实现登录成功
需求:
- 1.验证码接口:/api/captchaimage
- 2.登录接口:/api/login
- 登录接口请求体uuid字段 -> 验证码接口返回 uuid字段
分析:
- 1.验证码接口响应体中提取uuid
- var jsonData = pm.response.json();
- 2.设置环境变量保存uuid
- pm.environment.set("var_name",value);
- 3.登录接口引用uuid
- 请求参数中引用: {{var_name}}
总结
Postman调试合同上传接口
添加合同接口调试
注意:
测试数据中的合同编号 contracNo 必须唯一。
查询合同列表接口调试
总结
Postman批量执行
作用:通过运行测试集的方式批量运行测试用例
步骤:
点击测试集中的 "Run" 按钮,批量运行测试用例
弹出 Collection Runner窗口,点击运行按钮
查看测试结果
案例:完成 KDTX项目登录接口用例设计
- 需求:
- 已注册正确的用户名和密码,登录成功
- 用户名或密码错误,登录失败,提示 "用户名或密码错误"
-
- 需求:
- 按照接口测试思路进行测试点分析
- 从测试点转化为测试用例
- 使用Postman进行接口测试
提取测试点
设计测试用例
步骤:
点击测试集中的 "Add folder" 添加文件夹管理测试用例
点击文件夹上的 "Add Request" 添加请求实现测试用例
总结
Postman断言介绍
作用:让Postman工具代替人工自动判定预期结果和实际结果是否一致。
用法:
Postman断言—响应状态码断言
模块名称:Status code:Code is 200
模块内容:
- // 判断响应状态码是否等于 200
- pm.test("status code is 200", function() {
- pm.response.to.have.status(200);
- });
- pm.test()
- 参数1:字符串-测试断言名称
- 参数2:回调函数-具体断言语句
- pm.response.to.have.status(code:Number); // 判断是否包含指定的状态码
Postman断言—包含指定字符串断言
模块名称:Response body: Contains string
模块内容:
Postman断言—JSON断言
模块名称:Response body: JSON value check
模块内容:
总结
Postman参数化介绍
场景:测试脚本中仅测试数据不一样,使用参数化比提高脚本复用。
步骤:
测试数据保存在数据文件单独维护
引用数据文件实现脚本循环调用
Postman参数化实现
准备数据文件
引用数据文件数据
Postman参数化实现
选择数据文件:运行测试集时选择数据文件
总结
课程添加接口文档
1.提取测试点
2.设计测试用例
3.使用Postman进行接口测试
步骤:
点击测试集中的 "Add folder" 添加文件夹管理测试用例
点击文件夹上的 "Add Request" 添加请求实现测试用例
总结
查询课程列表接口文档
提取测试点
设计测试用例
课程修改接口文档
提取测试点
设计测试用例
课程删除接口文档
提取测试点
设计测试用例
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。