文章目录
- [1. 接口文档分析](#1. 接口文档分析)
- [2. 接口测试用例设计](#2. 接口测试用例设计)
- [3. Postman 进行接口测试](#3. Postman 进行接口测试)
-
- [3.1 创建测试集:](#3.1 创建测试集:)
- [3.2 编写断言-下列是常用JS断言](#3.2 编写断言-下列是常用JS断言)
-
- 1.验证响应状态码
- 2.验证响应体中是否包含某个字符串
- [3.验证 JSON 中的某个值是否等于预期的值](#3.验证 JSON 中的某个值是否等于预期的值)
- 4.验证响应体是否与某个字符串**完全相同**
- [5.验证响应头信息中的 Content-Type 是否存在](#5.验证响应头信息中的 Content-Type 是否存在)
- 6.验证响应时间是否小于某个值
- 断言示例:
- [3.3 运行测试集](#3.3 运行测试集)
- [3.4 查看测试结果](#3.4 查看测试结果)
- post新增接口:
- postman修改接口
- [4. 定义变量](#4. 定义变量)
-
- [4.1 **Environment**:环境范围-环境变量](#4.1 Environment:环境范围-环境变量)
- [4.2 **Collection**:测试集变量-集合范围生效](#4.2 Collection:测试集变量-集合范围生效)
- [4.3 **Global**:全局变量-全局范围](#4.3 Global:全局变量-全局范围)
- [4.4 变量优先级](#4.4 变量优先级)
- [5. 变量的使用](#5. 变量的使用)
- [6. 小结:接口测试思路](#6. 小结:接口测试思路)
- 总结
✨✨✨学习的道路很枯燥,希望我们能并肩走下来!
编程真是一件很奇妙的东西。你只是浅尝辄止,那么只会觉得枯燥乏味,像对待任务似的应付它。但你如果深入探索,就会发现其中的奇妙,了解许多所不知道的原理。知识的力量让你沉醉,甘愿深陷其中并发现宝藏。

本文开始
1. 接口文档分析
接口文档通过Swagger文档提供
通过使用Swagger文档进行接口测试
开发会直接给Swagger文档链接,可以直接打开
Swagger文档:文档生成,描述,调用后端接口,展示后端想要暴露的接口;
通过Swagger UI 能够知道信息如下:
一个完整的 Swagger/OpenAPI 文档通常包含以下部分:
- 基本信息(Info Object)
title:API 名称(如 "Swagger Petstore")
version:API 版本(如 "1.0.7")
description:详细描述
termsOfService:服务条款 URL
contact:开发者联系方式(邮箱等)
license:开源许可证(如 Apache 2.0) - 服务器信息(Servers in OAS 3.0;在 OAS 2.0 中为 host + basePath + schemes)
host: petstore.swagger.io
basePath: /v2
schemes: 支持 http 和 https
重点关注:请求接口模块
业务接口模块,不同模块下有不同的请求接口
点击GET请求: 可以查看请求参数的名称-Name,参数描述-Description
点击Try it out 可以发送请求
发送流程:点击Try it out → 填写参数 → 再点击Execute按钮 → 查看响应结果
请求响应:可以查看响应状态码-200, 响应描述,响应具体返回的值等信息
Models: 接口字段描述
根据Swagger文档分析接口的增删改查,为下一步接口用例设计做准备工作;
2. 接口测试用例设计
设计接口测试用例冒烟用例:测试主流程
接口信息通过Swagger文档中获取
- 测试用例设计:
- 用例编号:统计用例数量
- 模块:用例属于哪个功能模块
- 测试标题:描述接口用例的信息
- 优先级:执行测试用例的优先级
- 前置条件:自定义-看业务
- URL: 通过Swagger中的Request URL
- 请求方法:通过Swagger判断
- 请求参数:不同请求传递参数不同,自行判断
- 预期结果:
- 实际结果
3. Postman 进行接口测试
3.1 创建测试集:
创建测试集:创建测试项目,或postman支持导入swagger文档
操作测试集功能:运行测试集-批量执行接口用例,编辑,增加请求,增加文件夹,复制,导出,删除
3.2 编写断言-下列是常用JS断言
断言可以修改的地方:大部分是下述绿色部分
1.预期状态描述:可以修改
2.括号中的为预期的值,可以修改
- json的单独考虑:使用键值对判断,需要修改key, 返回Json值单个,使用jsonData.key 即可;多个json返回值,使用[0]这种索引判断;
pm.expect(jsonData[0].name).to.eql("doggie");
1.验证响应状态码
postman中标题 Status Code:Code is 200
javascript
//预期状态码描述:可以修改
pm.test("响应状态码为 200", function () {
//括号中的为预期的状态码,可以修改
pm.response.to.have.status(200);
});
2.验证响应体中是否包含某个字符串
postman中标题:Response Body:contains string
javascript
// 验证响应体中是否包含某个字符串
pm.test("响应体中包含预期的字符串", function () {
pm.expect(pm.response.text()).to.include("doggie");
});
3.验证 JSON 中的某个值是否等于预期的值
验证Json中某个Key的value是多少
postman中标题:Response Body:JSON value check
javascript
// 验证 JSON 中的某个值是否等于预期的值
pm.test("宠物名称为 doggie", function () {
var jsonData = pm.response.json();
//判断json中的某个key的值是否等于"doggle"
pm.expect(jsonData[0].name).to.eql("doggie");
});
4.验证响应体是否与某个字符串完全相同
postman中标题:Response Body:Is equal to a string
javascript
// 验证响应体是否与某个字符串完全相同
pm.test("响应体正确", function () {
pm.response.to.have.body("response_body_string");
});
5.验证响应头信息中的 Content-Type 是否存在
postman中标题是:Response Body:Content-Type header check
javascript
// 验证响应头信息中的 Content-Type 是否存在
pm.test("Content-Type is present", function () {
pm.response.to.have.header("Content-Type");
});
6.验证响应时间是否小于某个值
postman中标题是:Response time is less than 200ms
javascript
// 验证响应时间是否小于某个值
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});
pm.response.to.have.body("response_body_string");
});
断言示例:
断言使用:根据请求和响应,
3.3 运行测试集
运行测试集方式:
1.测试集页面 -> Run 按钮
2.测试集后的...三个点更多中也有run按钮
运行测试集后,可以点击结果查看详细信息,点击接口查看请求头,参数,body等信息
测试集运行参数设置:
运行后可查看结果:点击任意一个接口,可以查看响应,请求头信息和请求信息
3.4 查看测试结果
断言通过示例如下:
post新增接口:
从接口测试用例,根据请求,url,参数,需要设置断言,变量,进行接口请求
postman修改接口
修改接口:PUT请求,url, 对应的修改请求的参数,在JSON中,预期获取的响应与修改的JSON一样即可;
【注】如果Json返回多个数据,需要使用[]索引判断了,如下jsonData[1].id 为第二个想要的id;
javascript
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData[1].id).to.eql(549747);
});
4. 定义变量
定义变量:提前接口中公共部分,可以复用
如:同一个接口地址,不同请求方法(GET,POST,PUT,DELETE等),将公共地址提取为变量使用,就算地址变了,只需要修改变量即可;
Postman 中变量的种类与作用域
4.1 Environment:环境范围-环境变量
适用范围:大部分接口都需要使用
设置方法: postman左侧边栏Environments -> +
环境变量设置:可以通过公共变量,快速切换生产环境和测试环境,提高测试效率
环境变量使用:公共url部分替换
4.2 Collection:测试集变量-集合范围生效
适用范围:
设置方法: 测试集页面 -> Variables
在测试集中设置变量示例如图:
可以设置权限,脚本,变量
测试集变量的使用示例:
红框中全是可以修改的地方,使用的JSON中包含值的断言,响应式Json格式;
4.3 Global:全局变量-全局范围
适用范围:切换不同测试环境
设置方法:postman左侧边栏Environments -> Globals
全局变量使用和断言示例:
- 全局变量参数解释:
- VARIABLE: 设置变量名
- TYPE: 一般默认类型
- INITIAL VALUE: 共享初始值,团队共享,提供他人使用的共享值;
- CURRENT VALUE: 当前变量值
- Persist All按钮: 把当前变量全部替换为共享初始值
- Reset All按钮: 把当前变量设置与共享初始值一样
旧版postman
新版postman
其他变量设置
- Data:在测试集中上传的数据
数据驱动-json等批量数据 - Local:脚本变量-在脚本中设置的变量,脚本范围生效,断言JS中使用的就是Local变量;
4.4 变量优先级
变量重名,会根据优先级使用
优先级从高至低为:Data -> Enviroment -> Collection -> Global -> Local
5. 变量的使用
- 第一种使用:地方
使用对象:在请求 URL, Params 参数、 Body 表格、JSON/XML 文本
使用方式:通过 {{变量名}} 使用 - 第二种使用地方
使用对象:在 Pre-request Script 和 Tests 脚本中使用
使用方式:
1.使用postman中封装好的JS语句获取
2.通过 {{变量名}} 设置对应变量
postman中封装了:对变量操作的方法如下 和 断言的方法
寻找:Scripts中的Pre-request/Post-response中的右下方</>Snippets点击即可
获取全局变量的方法:Get a global variable
设置全局变量的方法: Set an global variable
小技巧:postman调试
在Pre-request Script 和 Tests 脚本中使用console进行调试, 打开下方Console面板,查看对应信息
javascript
console.log()
6. 小结:接口测试思路
- 首先获取接口需求文档(Swageer文档或者Apifox等),了解对应请求方式,接口参数,返回值,前置条件,功能模块划分,接口响应逻辑
- 设计接口测试用例:根据接口文档中的内容,设计接口测试用例,考虑具体参考如下文章
接口测试用例设计 - 用例评审后,通过Postman等接口工具,执行接口用例
Postman: 创建测试集 → 创建不同功能模块文件夹 → 接口用例创建(GET,POST,PUT,DELETE等) → 公共环境变量设置(划分测试环境和生产环境)→ 执行测试用例中配置:参数配置,断言配置(请求前+响应后) → 单个运行可以,考虑测试集运行(多模块之间配合运行接口用例)→ 可以配置测试集运行参数 → 查看测试结果 - bug管理:沟通,记录,提交,验证,回归
- 接口测试报告产出
总结
✨✨✨各位读友,本篇分享到内容是否更好的帮助你理解,如果对你有帮助给个👍赞鼓励一下吧!!
🎉🎉🎉世上没有绝望的处境,只有对处境绝望的人。
🎉🎉🎉一遇挫折就灰心丧气的人,永远是个失败者。而一向努力奋斗,坚韧不拔的人会走向成功。
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!




















