接口测试-Postman接口测试小练习-初级

文章目录

  • [1. 接口文档分析](#1. 接口文档分析)
  • [2. 接口测试用例设计](#2. 接口测试用例设计)
  • [3. Postman 进行接口测试](#3. 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 文档通常包含以下部分:

  1. 基本信息(Info Object)
    title:API 名称(如 "Swagger Petstore")
    version:API 版本(如 "1.0.7")
    description:详细描述
    termsOfService:服务条款 URL
    contact:开发者联系方式(邮箱等)
    license:开源许可证(如 Apache 2.0)
  2. 服务器信息(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.括号中的为预期的值,可以修改

  1. 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. 小结:接口测试思路

  1. 首先获取接口需求文档(Swageer文档或者Apifox等),了解对应请求方式,接口参数,返回值,前置条件,功能模块划分,接口响应逻辑
  2. 设计接口测试用例:根据接口文档中的内容,设计接口测试用例,考虑具体参考如下文章
    接口测试用例设计
  3. 用例评审后,通过Postman等接口工具,执行接口用例
    Postman: 创建测试集 → 创建不同功能模块文件夹 → 接口用例创建(GET,POST,PUT,DELETE等) → 公共环境变量设置(划分测试环境和生产环境)→ 执行测试用例中配置:参数配置,断言配置(请求前+响应后) → 单个运行可以,考虑测试集运行(多模块之间配合运行接口用例)→ 可以配置测试集运行参数 → 查看测试结果
  4. bug管理:沟通,记录,提交,验证,回归
  5. 接口测试报告产出

总结

✨✨✨各位读友,本篇分享到内容是否更好的帮助你理解,如果对你有帮助给个👍赞鼓励一下吧!!
🎉🎉🎉世上没有绝望的处境,只有对处境绝望的人。
🎉🎉🎉一遇挫折就灰心丧气的人,永远是个失败者。而一向努力奋斗,坚韧不拔的人会走向成功。
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!

相关推荐
历程里程碑2 小时前
破解三数之和:双指针高效解法
c语言·数据结构·c++·经验分享·算法·leetcode·排序算法
潘达斯奈基~3 小时前
spark性能优化6:内存管理
大数据·测试工具·性能优化·spark
weixin_5372170612 小时前
花艺资源合集
经验分享
可可南木13 小时前
ICT测试日志 --5--日志记录的格式 下
功能测试·测试工具·pcb工艺
宏集科技工业物联网13 小时前
工业HMI选型指南(下):边缘计算、一体化架构与Web化趋势
经验分享·边缘计算·工业自动化·hmi·工控屏·工业触摸屏
合兴软件@14 小时前
芯片适配快讯:合兴软件ISDT成功适配瑞萨RH850全系列MCU
测试工具·车载系统·时序数据库·嵌入式实时数据库
LaughingZhu16 小时前
Product Hunt 每日热榜 | 2025-12-26
人工智能·经验分享·深度学习·神经网络·产品运营
2501_9240641117 小时前
2025年主流接口测试工具对比分析与最佳实践指南
测试工具
oh-pinpin18 小时前
【jmeter】-脚本-接口自动获取token
测试工具·jmeter·压力测试