接口测试-Postman接口测试流程小练习2

文章目录

  • [1. 接口抓包分析](#1. 接口抓包分析)
    • [1.1 没有接口文档 - 抓包](#1.1 没有接口文档 - 抓包)
    • [1.2 抓包后编写简要的接口文档](#1.2 抓包后编写简要的接口文档)
  • [2. 根据功能-接口测试用例设计](#2. 根据功能-接口测试用例设计)
  • [3. Postman完成接口测试](#3. Postman完成接口测试)
    • [3.1 数据驱动](#3.1 数据驱动)
    • [3.2 测试集导入和导出](#3.2 测试集导入和导出)
    • [3.3 使用Cookies](#3.3 使用Cookies)
    • [3.4 鉴权方式](#3.4 鉴权方式)
      • [3.4.1 鉴权登录方式一:创建登录接口,在接口中响应断言,获取token参数](#3.4.1 鉴权登录方式一:创建登录接口,在接口中响应断言,获取token参数)
      • [3.4.2 鉴权登录方式二:请求前脚本中获取参数](#3.4.2 鉴权登录方式二:请求前脚本中获取参数)
    • [3.8 postman中设置导出为代码](#3.8 postman中设置导出为代码)
  • [4. 小结:接口测试流程](#4. 小结:接口测试流程)
  • 总结

✨✨✨学习的道路很枯燥,希望我们能并肩走下来!

编程真是一件很奇妙的东西。你只是浅尝辄止,那么只会觉得枯燥乏味,像对待任务似的应付它。但你如果深入探索,就会发现其中的奇妙,了解许多所不知道的原理。知识的力量让你沉醉,甘愿深陷其中并发现宝藏。



本文开始

1. 接口抓包分析

前提:开发没有提供接口文档,如何测试呢?

1.1 没有接口文档 - 抓包

1.需要使用抓包工具,辅助进行接口测试

2.抓包后与开发确认参数信息:包括响应中的字段,什么类型,长度要求,字段有什么特殊要求,响应逻辑等;

3.通过抓包后,产出接口文档

抓包:web端可以时间使用network, 移动端需要代理工具辅助;

1.2 抓包后编写简要的接口文档

  • 接口文档:内容包含简单描述接口
  • 请求URL: http://www.bai.com
  • 请求方式:GET
  • 请求参数:可以使用表格-参数具体要求需要实际与开发沟通
参数 必须 类型 说明
keyword string 搜索内容不能包含特殊字符
page int 要查询的页数。默认值为 1。决定响应中 page 字段的值。如果它的值超过搜索结果的总页数,则响应中的 page 字段取值为搜索结果的最大页数
limit int 返回商品的数量。默认值为 10。决定响应中 limit 字段的值和 list 返回对象的数量。如果它的值超过搜索结果的总数量则响应中 list 返回全部搜索结果对象。
categoryId int 二级类别 id,不传或者值为 0时搜索全部类目下的商品
  • 响应示例:-用例中的预期结果
    一般是一个Json格式
xml 复制代码
{
    "code":200,
    "message":"成功",
    "data":{[....]}
}
  • 响应参数说明:如下说明每一个响应返回的参数
参数 类型 说明
code int 返回码
message string 对返回码的文本描述
data object 搜索结果信息

2. 根据功能-接口测试用例设计

搜索接口功能分析:

基本功能流程测试考虑:

字段参数测试考虑

组合参数校验:使用判断表方式

异常场景考虑:

分析功能后,将思维导图转为具体测试用例-excel;- 用例设计本地文章查看

3. Postman完成接口测试

【注】Postman进行测试,多个接口,注意能复用就复用,注意参数和断言的设置即可;

Web端快捷导入接口方式如下:

  • 保存 .har文件 导入 postman
    方式1:network中点击请求→右键选择Save all as HAR with conten
    方式2:network中点击请求→ 点击⬇️即可下载.har

postman中点击import → 直接将.har拖拽到,postman会自动解析生成一个测试集;也可以放curl, url等导入

  • 创建一个新的测试集:
    将.har中的接口移动到新建的测试集中
  • 创建接口测试用例:根据设计的接口用例-excel,在postman中进行创建

3.1 数据驱动

使用前提:如对于搜索参数内容的验证,请求参数都是输入内容和预期结果都是差不多一样类似的,断言都是一样,这种考虑使用数据驱动;简要说明-一样接口,类似参数(可填或不填),查看预期结果类似,可以使用Json或Csv文件导入数据;

数据驱动步骤:

  • 准备数据: JSON 或者 CSV格式
    JSON格式:.json文件中使用数组,每个元素是对象
xml 复制代码
[
	{
		"keyword":"v1",
		"page":"100",
		"limit":"1"
	},{
		"key1":"v1",
		"key2":"v2"
	}
]

CSV格式:.csv文件首行是变量的key-也就是输入的参数是什么;下面每一行都是一条测试数据;

分割每个参数的分隔符可以指定,这里使用的是逗号;

  • 修改参数设置:变量引用
    修改的位置:请求传递的参数,断言中的参数
    防止变量报错,可以将变量定义到测试集的变量中,设置为空值;

断言中修改,直接从data中获取就可,点后面的跟.csv文件首行设置的变量

  • 修改断言在测试集中定义数据变量:使用数据变量,放在报错

  • 运行测试集,选择准备好的数据

    postman点击run运行测试集 → 点击Select File,选择.csv/.json文件 → 点击运行

3.2 测试集导入和导出

导入:点击postman页面 import按钮

导出:测试集后的... → 点击More → 点击Export按钮导出

3.3 使用Cookies

Postman会自动保存Cookies信息-鉴权使用的是Cookies会自动获取

点击发送请求Sends按钮 → Cookies按钮 →查看获取的Cookies

发送请求后,自动获取Cookies

可以手动抓包获取Cookies, 再点击Cookies按钮,输入Cookies后,再Add按钮新增Cookies

3.4 鉴权方式

postman中添加鉴权的位置如下:

默认从父中继承

3.4.1 鉴权登录方式一:创建登录接口,在接口中响应断言,获取token参数

参数传递方式获取
token获取:

1.在测试集中创建登录接口

2.在登录接口中从响应中获取,需要创建脚本在Post-response中提取 - 使用JS脚本

3.token保存 token 到测试集变量 - 自动获取保存到测试集变量中

4.再次请求时token会添加到请求参数 或 请求头

【注】运行测试集前,需要先勾选登录接口

方式一示例:

将下列脚本放到Post-response中即可

javascript 复制代码
//获取响应数据的json对象
var jsonData=pm.response.json();
//从json对象中提取token值
var token = jsonData.data.token;
//把token值设置为测试集变量
pm.collectionVariables.set("token",token);

运行后会在测试集中:查看到token测试集变量

3.4.2 鉴权登录方式二:请求前脚本中获取参数

auth鉴权默认从父级中获取

方式二:需要在测试集中请求前添加脚本;

【注】脚本中获取鉴权信息,在测试集中设置一次,在测试集中的接口都可以复用了;

步骤一:测试集运行前添加脚本:

下列脚本只是参考,根据不同业务需求不同请求,需要适当修改;

Pre-request中脚本如下:仅提供参考

javascript 复制代码
//构造登录请求
const loginRequest = {
	url:'http: /litemall/auth/login',
	method: "POST",
	header: 'Content-Type:application/json',
	body: {
		mode:'raw',
		raw: JSON.stringify({'username':'user123',"password": "user123"})
	}
};
//发送请求
pm.sendRequest(loginRequest,function(err, response) {
	if(err){
		//如果出错,打印错误信息
		console.log(err);
	}else {
		//如果没有出错,打印响应消息,获取token设置测试集变量
		console.log(response.json());
		//将token设置到测试集变量中
		pm.collectionVariables,set("token",response.json().data.token);
    }
});

步骤二:在测试集手动中设置Auth:根据需要业务选择不同的Auth Type即可,该测试集中接口都可复用;

3.8 postman中设置导出为代码

Postman导出代码:右侧边栏</>按钮,点击,可以选择想要的语言,提供复制按钮,点击即可复制

4. 小结:接口测试流程

  1. 没有接口文档,需要借助抓包工具获取接口;
    考虑移动端:借助代理工具;考虑Web端:直接通过开发者工具f12查看;
  2. 根据抓包内容构造接口文档:包含主要内容(请求URL, 请求方式,请求参数,响应参数说明,响应示例) ,具体细节需要跟开发沟通确认;
  3. 设计测试用例:考虑冒烟,流程,参数,请求方式,非功能等
  4. 使用Postman执行测试用例:需要构建测试环境,如:测试集,测试模块划分,公共变量设置(鉴权参数配置,数据配置-csv,json等),断言
  5. 测试结果分析-产出报告

总结

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

相关推荐
Apifox.2 小时前
Apifox 12 月更新| AI 生成用例同步生成测试数据、接口文档完整性检测、设计 SSE 流式接口、从 Git 仓库导入数据
前端·人工智能·git·ai·postman·团队开发
程序员杰哥5 小时前
Postman设置接口关联,实现参数化
自动化测试·软件测试·python·测试工具·测试用例·接口测试·postman
oh-pinpin5 小时前
【jmeter】-脚本-导入添加接口(F12复制 cURL )
测试工具·jmeter·压力测试
软件测试小仙女6 小时前
告别手工分析!Python+HAR一键生成页面性能测试报告
自动化测试·软件测试·python·测试开发·测试工具·性能测试·测试报告
汽车仪器仪表相关领域6 小时前
亲历机动车排放检测升级:南华NHA-604/605测试仪的实战应用与经验沉淀
人工智能·功能测试·测试工具·安全·汽车·压力测试
BullSmall7 小时前
Anroid、IOS、鸿蒙、浏览器的兼容性测试方案
测试工具·可用性测试
fzm52987 小时前
嵌入式软件单元测试中AI自动化与人工检查的协同机制研究:基于专业工具的实证分析
c语言·测试工具·单元测试·自动化
天才测试猿21 小时前
2026全新软件测试面试八股文【含答案+文档】
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展
奋进的电子工程师1 天前
新架构下高精度时间戳总线接口卡 TestBase VCI 0620
测试工具·fpga开发·软件工程