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

postman接口自动化如何进行参数化

Postman 接口自动化参数化,核心是用变量替换请求中的固定值,支持环境 / 全局变量、内建变量、脚本动态生成、外部数据文件(CSV/JSON)四种方式,配合 Collection Runner 实现批量数据驱动。

一、变量引用基础(统一语法)

所有参数化都用{{变量名}}引用,可用于:

  • URL、Params、Headers、Body(form-data/raw/json)
  • Pre-request Script、Tests 脚本

二、四种参数化方式(从简单到批量)

1. 环境 / 全局变量(单值 / 环境切换)

适合固定配置(如baseUrltoken)、多环境切换。

  • 创建:右上角Environment → Manage Environments
    • 全局变量:所有集合 / 环境共享
    • 环境变量:仅当前环境生效(开发 / 测试 / 生产)
  • 示例
    • 定义:baseUrl = https://api.test.comtoken = xxx
    • 引用:GET {{baseUrl}}/usersAuthorization: Bearer {{token}}
2. 内建变量(快速生成随机 / 唯一值)

无需定义,直接用{{$变量}},适合唯一标识、时间戳。常用:

  • {{$timestamp}}:当前时间戳(毫秒)
  • {{$guid}}:全局唯一 ID
  • {{$randomInt}}:0–1000 随机整数
  • {{$randomEmail}}:随机邮箱
  • 示例:username: user_{{$timestamp}}
3. 脚本动态生成(Pre-request/Tests)

适合复杂逻辑、接口关联(如登录后取token)。

  • Pre-request Script(请求前)

    javascript

    运行

    // 生成动态用户名 const username = `test_${Date.now()}`; pm.environment.set("username", username); // 生成随机手机号 const phone = `138${Math.floor(Math.random() * 100000000)}`; pm.globals.set("phone", phone);
  • Tests(请求后,接口关联)

    javascript

    运行

    // 登录接口返回 token,存入环境变量 const res = pm.response.json(); pm.environment.set("token", res.data.token);
4. 外部数据文件(批量数据驱动,核心)

CSV/JSON做多组测试数据,配合Collection Runner迭代执行。

(1)准备数据文件
  • CSV(推荐,首行是变量名)

    csv

    username,password,expectedCode test01,123456,200 test02,654321,200 error,000000,401
  • JSON(数组对象)

    json

    [ {"username":"test01","password":"123456","expectedCode":200}, {"username":"test02","password":"654321","expectedCode":200} ]
(2)请求中引用
  • URL/Params/Body:{{username}}{{password}}
  • Tests 脚本:用data.变量名读取(如data.expectedCode

    javascript

    运行

    pm.test(`状态码为 ${data.expectedCode}`, function () { pm.response.to.have.status(data.expectedCode); });
(3)Collection Runner 执行
  1. 打开集合 → 点击右上角Runner
  2. 选择请求 → 上传数据文件(CSV/JSON)
  3. 设置迭代次数(默认等于数据行数)
  4. 点击Run,自动逐行执行并生成报告

三、变量优先级(避免冲突)

从高到低:本地变量 > 数据文件 > 环境变量 > 集合变量 > 全局变量Postman。


四、实战流程(完整示例)

  1. 定义环境变量:baseUrltoken
  2. 登录接口:Tests 脚本提取token存入环境
  3. 业务接口:URL/Headers/Body 用{{变量}}
  4. 准备 CSV 多组测试数据
  5. Collection Runner 上传 CSV,批量执行并断言

五、Newman 命令行参数化(CI/CD)

bash

运行

newman run 集合.json \ -e 环境.json \ -d 数据.csv \ --global-var "baseUrl=https://api.prod.com"
http://www.jsqmd.com/news/570873/

相关文章:

  • 嵌入式设备OTA升级,如何用RSA-3072和Ed25519给固件‘验明正身’?
  • 轻量级投资决策中枢:TrafficMonitor股票插件的创新实践
  • 巴旦木脱青皮的设计【solidworks三维、cad图纸、论文、答辩稿】
  • 说说连云港强制执行律师费用,多少钱才合理? - myqiye
  • 如何快速掌握Vitest:让前端测试效率提升10倍的终极指南
  • 群晖7.X系统下SSH双重验证(OTP)的故障排查与关闭指南
  • 360误杀Go程序?教你设置专属安全编译目录(附各杀毒软件信任区设置图解)
  • 5分钟掌握:如何用这款免费工具让Windows飞起来?
  • 【完整源码+数据集+部署教程】儿童与成人目标检测系统源码分享[一条龙教学YOLOV8标注好的数据集一键训练_70+全套改进创新点发刊_Web前端展示]
  • HSTracker:macOS炉石传说智能追踪器的终极指南
  • Vanilla论坛布局系统详解:灵活定制你的社区页面结构
  • 从零到一:NS2网络模拟器实战部署与场景构建指南
  • 『NAS』99 款 PDF 工具一站式搞定-PDFCraft
  • 题解:学而思编程 约瑟夫游戏
  • Pycharm集成gprMax 3.0:从环境配置到A/B扫描仿真的完整工作流
  • Zotero Actions Tags:自动化文献管理,告别手动标签整理
  • 模型调用总闸门再次被投毒
  • AMD Ryzen SDT调试工具:突破性实战指南,让你的处理器性能飙升200%
  • 技术解析:Planck-Pi如何重新定义嵌入式开发入门门槛
  • ER-Save-Editor技术架构解析:Rust实现的艾尔登法环存档编辑器深度剖析
  • Unity游戏Mod加载技术揭秘:MelonLoader双运行时架构深度解析
  • Matlab_Simulink与Carsim的联合仿 擅长基于群智能算法优化的LQR、PID控制算法,能清晰讲解其中要点哦。对于基于群智能算法的一般路径规划
  • Pock完全指南:免费开源的MacBook Touch Bar小部件管理器终极教程
  • 射频电路设计新手必看:ADS2017版图字体调整与Move Edge操作技巧
  • StructBERT文本相似度模型在Keil5开发环境中的调试与部署
  • 美胸-年美-造相Z-Turbo部署教程:解决Gradio跨域访问限制与HTTPS反向代理配置
  • 解锁PlotJuggler数据可视化:工业时序数据处理与分析指南
  • ⽣产级 Kubernetes ⾼可⽤集群部署⼿册(基于Rocky Linux Minimal 9.7+K8S v1.30.2)
  • 跨平台串口调试终极指南:如何用SerialPortAssistant高效完成嵌入式开发
  • 告别人工筛选!用Word2vec构建主题词库,我们拿“网络暴力”关键词试了试