当前位置: 首页 > news >正文

使用Postman进行接口测试、接口自动化和集成CI/CD

接口测试流程

1拿到接口文档(没有需要抓包),熟悉接口业务,接口请求四要素和响应四腰素,接口鉴权方式,错误码业务等

2.编写接口测测试用例(测试点XMND)并评审(怎么测)

正例:正常输入接口的请求四要素,查看并验证接口响应数据的正确性。

接口请求四要素:请求方式,请求路径,请求头,请求数据

接口响应四要素:响应码,响应信息,响应头,响应数据。

反例:接口鉴权反例:鉴权码为空,错误,过明等

接口参数反例:参数为空,参数类型异常,参数长度异常。

业务场景反例:黑名单,接口调用次数,分页(100条,每页10条)

3.使用Postman执行接☐测试

4.通过Postman+Newman+Jenkins实现接口自动化测试持续集成

并且输出报告以及进行邮件,企微,钉钉通知。

接口关联

什么是借口关联

当接口测试的上一个接口的返回值需要作为下一个接口参数。

时间戳:{{$timestamp}}

实现接口关联

使用json对象取值,保存到全局变量

var jsonData =pm.response.json();
console.log("Respense data:",jsonData);var access_token=jsonData.access_token;
console.log("access_token from response", access_token)pm.globals.set("access_token", access_token);

使用正则提取,保存到全局变量

{{access_token}}

全局变量通过{{变量名}}使用

全局变量和环境变量

全局变量

在postman这个应用中,都能使用的变量

环境变量

希望在一套脚本的不同环境都能测试

不同环境的区别在于:IP或者域名不一样

Postman测试批量运行

  • 手动测试
  • 定时运行
  • 通过CLI自动运行:

获取Postman的key

postman login --with-api-key PMAK-681778f395508a00014e7ac1-87399b1df9b105bc2220499cfbff0d3d22
postman collection run 43521970-0efe2428-d163-4142-baca-073a9e7fe78e
  • 性能测试

Fixed:固定

Ramp up:逐步增强

Spike:尖刺

Peak:尖峰

Postman自动化测试结果断言

断言方式

状态断言/业务断言

// 状态断言,是否请求成功验证状态码
pm.test("请求成功", function () {pm.expect(pm.response.code).to.be.oneOf([200, 202]);
}); 
// 业务断言,测试是否包含某个字符
pm.test("Status code name has string", function () {pm.expect(pm.response.text()).to.include("id");
});

Postman自带断言

准确的断言带动态参数的接口

  1. 不使用系统的时间戳({{timestamp}})
  2. 创建自己的时间戳在请求之前
var nowday = Date.now();
pm.globals.set("nowday", nowday);
  1. 把参数修改为自定义时间戳
  2. 断言,不适用{{}}获取全局变量,使用pm.global.get("")
  3. 公共断言写入集合

Postman数据驱动CSV或TXT测试

什么是数据驱动

通过数据驱动用例执行,本质上请求四要素里面的请求参数不同,因为不同的数据传入接口得到不同的结果。所以我们可以先把这些数据设置好,然后读取这个数据文件执行用例。实现覆盖正反例。

实现数据驱动的方法

结构化

设置专门的文件夹管理,复制多个用例设定不同的数据测试

CSV

编写CSV文件,通过{{}}注入参数运行数据

把所有参数改为获取全局变量,参数名要和CSV内的一致

选择数据文件批量运行

缺点:不能做到一个接口一个数据文件,而是所有接口一个数据文件

多个测试怎么设置断言

使用测试用例判断,if

Newman+Allure+Jenkins自动化持续集成

导出测试集和全局变量

前提:需要安装node,newman和html模块

把环境变量改为集合变量

newman run "d:/Postman/ms/Testcase.json" -r html --reporter-html-export "d:/Postman/ms/report.html"

有环境就带上-g“xx.json”

  • Allure生成报告
newman run "d:/Postman/ms/Testcase.json" -r allure --reporter-allure-export "d:/Postman/ms/allure-report"

使用Jenkins生成Allure报告

  1. 配置自定义工作区,把测试用例所在目录输入到工作空间
  2. 输入构建的命令
  3. 构建后选择生成Allure报告

Postman+CLI+Jenkins自动化持续集成

把环境变量改为集合变量

在 Postman 中创建测试集合和环境

  • 创建测试集合:打开 Postman,创建一个新的集合,把所有需要测试的 API 请求添加到这个集合里。
  • 创建测试脚本:针对每个 API 请求,编写测试脚本。测试脚本可以运用 Postman 提供的断言函数来验证 API 的响应是否符合预期。
  • 创建环境变量:若 API 请求包含一些可变的参数,像 URL、认证信息等,可创建环境变量进行管理。

导出 Postman 集合和环境

  • 导出集合:在 Postman 中,点击集合名称旁边的三个点,选择 “Export”,将集合导出为 JSON 文件。
  • 导出环境:同样的操作,将环境也导出为 JSON 文件。

配置 Jenkins

  • 创建新任务:登录 Jenkins,点击 “新建任务”,选择 “构建一个自由风格的软件项目”,输入任务名称后点击 “确定”。
  • 配置源码管理:若测试集合和环境文件存于代码仓库,可在此处配置仓库的 URL、认证信息等。
  • 配置构建触发器:依据需求设置构建的触发条件,例如定时构建、代码变更触发等。
  • 配置构建步骤:在 “构建” 部分,点击 “增加构建步骤”,选择 “Execute shell”(Linux/Mac)或者 “Execute Windows batch command”(Windows)。在命令框中输入 Newman 的运行命令,示例如下:
newman run /path/to/your/collection.json -e /path/to/your/environment.json

配置构建后操作

  • 生成测试报告:若想生成详细的测试报告,可安装 Newman 的报告生成器,如<font style="color:rgb(0, 0, 0);">newman-reporter-htmlextra</font>。安装后,修改构建命令以生成 HTML 报告:
newman run /path/to/your/collection.json -e /path/to/your/environment.json -r htmlextra --reporter-htmlextra-export /path/to/report.html
  • 发布测试报告:在 Jenkins 中,点击 “增加构建后操作”,选择 “Publish HTML reports”。在 “HTML directory to archive” 中输入报告文件所在的目录,在 “Index page [s]” 中输入报告的文件名(如<font style="color:rgb(0, 0, 0);">report.html</font>)。

保存并运行任务

  • 完成上述配置后,点击 “保存”。
  • 手动触发构建或者等待触发条件满足后自动构建,Jenkins 会运行 Newman 命令执行 API 测试,并生成测试报告。
http://www.gsyq.cn/news/64283.html

相关文章:

  • 信创环境下的一体化全栈智能运维
  • 28223E2125263E2121203E212424384722B0开
  • 【251128】CF2164 Div.1+2 vp 总结
  • 2025年四川成都奖杯奖牌定制、奖章证书定制、奖杯定制、水晶奖杯定制、奖牌定制品牌厂家企业推荐top5指南
  • 基于PyTorch的YOLOv5目标检测 - 教程
  • 2025年工业冷风机车间降温技术全解析,铁皮棚车间降温/焊装车间通风降温/压铸车间通风降温/机械厂车间降温工业冷风机厂商推荐排行
  • 2025非遗新中式品牌排行TOP榜,这些品牌正走红,非遗新中式推荐排行色麦新中式层层把关品质优
  • 2025年靠谱的四川变形缝_变形缝厂家实力及口碑推荐榜
  • SQL Server设置用户查看指定数据库的指定表单
  • 深入解析:Mac如何安装mysql和完全卸载mysql
  • 深入解析:maven打jar包,将依赖的jar提取出来
  • 实用指南:云架构设计与实践:从基础到未来趋势
  • 2025年广东AI搜索优化GEO公司推荐:惠算领衔,多平台适配
  • 关于图灵停机问题不可判定性证明
  • Vue3.0 简单商城—购物车组件
  • 04.Git初始化代码仓库并上传项目代码
  • 2025 温度循环试验箱厂家推荐指南!技术实力与行业方案深度解析
  • 源码解析:CRMEB移动端订单模块的架构设计与数据同步机制
  • Vue3.0 简单商城—商品列表组件
  • Vue3.0 简单商城—Header组件与登录模块编写
  • Spring MVC项目配置tomcat
  • 2025年下半年江苏干式变压器、油浸式变压器、变电站、配电箱、电表箱厂家综合推荐指南:五大优质供应商深度解析
  • IDEA+MyBatis实现增删改查(1)
  • 阿里云安全防护神器ESA
  • 2025 年衬塑管道厂家最新推荐榜,技术实力与市场口碑深度解析
  • Makefile 快速入门
  • 2025年室内体育馆运动地胶生产厂家权威推荐榜单:定制运动地板/室外地胶‌/网红场馆‌源头厂家精选
  • 2025 年常州家政服务机构最新推荐榜,技术实力与市场口碑深度解析:全品类服务品牌测评正规月嫂 / 老人护理 / 育儿照料 / 白班保姆 / 钟点工 / 家政保洁服务公司推荐
  • IDEA 2024版如何创建Spring Boot项目
  • 什么DeekSpeek居然自己会学习?