接口测试-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. 测试结果分析-产出报告

总结

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

相关推荐
辣香牛肉面1 天前
Wireshark v4.6.2 开源免费网络嗅探抓包工具中文便携版
网络·测试工具·wireshark
may_一一2 天前
xpath定位:selenium和playwrightAnt Design / 表单类页面)
selenium·测试工具
daopuyun2 天前
CNAS/CMA软件检测实验室源代码漏洞测试工具选型要求与比对
软件测试·测试工具·软件检测·cnas认可·cma认定
Wpa.wk2 天前
接口自动化测试 - 请求构造和响应断言 -Rest-assure
开发语言·python·测试工具·接口自动化
AI_56782 天前
Postman接口测试提速技巧:批量请求+智能断言实践
测试工具·lua·postman
Luminbox紫创测控2 天前
整车自然暴晒与全光谱阳光模拟老化相关性研究
测试工具
Warren982 天前
Pytest Fixture 作用域与接口测试 Token 污染问题实战解析
功能测试·面试·单元测试·集成测试·pytest·postman·模块测试
弹简特2 天前
【JavaEE06-后端部分】SpringMVC01-Spring MVC第一大核心URL 路由映射【建立连接】与 Postman 接口测试详解
java·spring boot·测试工具·spring·postman
测试大圣3 天前
软件测试基础知识总结(超全的)
软件测试·python·功能测试·测试工具·职场和发展·单元测试·测试用例