> 技术文档 > 懒人必备!9张GIF动图学会Postman高阶技巧:变量/脚本自动化/Mock_postman自动化脚本

懒人必备!9张GIF动图学会Postman高阶技巧:变量/脚本自动化/Mock_postman自动化脚本


作者:唐叔在学习
关键词标签Postman技巧 API测试 自动化测试 Mock服务 环境变量 测试断言

各位CSDN的小伙伴们好,我是你们的老朋友唐叔!今天不聊算法,不聊架构,咱们来聊聊每个开发者都离不开的神器——Postman。很多人以为Postman就是个发HTTP请求的工具,那可就大材小用啦!它其实是个功能强大的API开发测试平台,掌握它的高阶玩法,能让你的开发效率提升好几个Level!

文章目录

    • 一、数据格式处理
    • 二、变量管理:让你的请求\"活\"起来
      • 1. 环境变量:不同环境的切换大师
      • 2. 全局变量:跨请求的共享数据
    • 三、前置脚本:请求前的\"预备动作\"
    • 四、测试断言:自动化验证API
    • 五、自动化测试:解放双手
      • 1. 集合运行器(Collection Runner)
      • 2. Newman:命令行中的Postman
    • 六、Mock服务:前后端并行开发
    • 七、代码导出:快速生成客户端代码
    • 八、请求导入:快速创建集合
    • 九、分享集合:共享你的成果
    • 十、唐叔的小结

一、数据格式处理

是的,Postman作为发送HTTP请求的工具,那么处理数据格式也是信手拈来的事情,尤其是最常见的 JSON 数据处理,快捷键 F12 可以快速批量替换字符,点击 Beautify 按钮即可快速美化 JSON 数据。

在这里插入图片描述

二、变量管理:让你的请求\"活\"起来

Postman不仅仅只能使用固定的常量数据,也可以有“变量的”。只需要使用 {{变量名}} 外加在合适的位置定义变量值,即可在多请求中重复使用。

1. 环境变量:不同环境的切换大师

很多小伙伴在测试时,经常要在开发、测试、生产环境间切换,手动改URL?太Low了!环境变量就是为此而生:创建多个环境(开发、测试、生产),一键切换,所有请求自动适应!

在这里插入图片描述

2. 全局变量:跨请求的共享数据

变量用在前置脚本或者后置脚本,还可以用于不同请求间传递数据,从而达到跨请求的数据共享。

在这里插入图片描述

当然,变量的使用场景还有很多,详细内容可以看唐叔往期文章:告别重复劳动!Postman变量指南,让API测试飞起来 | 唐叔出品

三、前置脚本:请求前的\"预备动作\"

前置脚本(Pre-request Script)可以在发送请求前执行,适合做数据准备:

// 生成签名const moment = require(\'moment\');let timestamp = moment().unix();pm.environment.set(\"timestamp\", timestamp);let secret = \"my_secret_key\";let sign = CryptoJS.MD5(`param1=value&timestamp=${timestamp}${secret}`).toString();pm.environment.set(\"sign\", sign);

当然,也很适合用于获取 token,如上一章节的变量传递所示,下面是一个参考使用示例。

pm.sendRequest({ url: pm.environment.get(\'base_url\'), method: \'POST\', body: { mode: \'raw\', raw: JSON.stringify({ username: pm.environment.get(\'username\'), password: pm.environment.get(\'password\') }) }}, function (err, res) { if (!err) { pm.environment.set(\'access_token\', res.json().token); }});

四、测试断言:自动化验证API

后置脚本,如上述章节,可以用于传递变量。当然,也可以用于撰写Tests脚本,自动验证API返回是否符合预期:

pm.environment.set(\"email\", pm.response.json().email)// 检查状态码pm.test(\"Status code is 200\", function() { pm.response.to.have.status(200);});// 验证响应时间pm.test(\"Response time is less than 200ms\", function() { pm.expect(pm.response.responseTime).to.be.below(200);});// 验证JSON返回值pm.test(\"User id is correct\", function() { var jsonData = pm.response.json(); pm.expect(jsonData.user.id).to.eql(1001);});// 验证Schema结构pm.test(\"Schema is valid\", function() { const schema = { type: \"object\", properties: { success: {type: \"boolean\"}, data: { type: \"object\", properties: {  id: {type: \"number\"},  name: {type: \"string\"} }, required: [\"id\", \"name\"] } }, required: [\"success\", \"data\"] }; pm.response.to.have.jsonSchema(schema);});

在这里插入图片描述

五、自动化测试:解放双手

1. 集合运行器(Collection Runner)

批量运行整个集合的请求,并生成测试报告:

  1. 点击Collections → 选择集合 → Run
  2. 设置迭代次数、延迟等参数
  3. 查看详细的测试结果

在这里插入图片描述

2. Newman:命令行中的Postman

Newman让你可以在CI/CD流程中运行Postman集合:

npm install -g newmannewman run mycollection.json -e env.json --reporters cli,html

六、Mock服务:前后端并行开发

前端不用等后端,自己造数据:

  1. 创建Mock服务器
  2. 定义Mock路由和响应示例
  3. 前端直接调用Mock URL

唐叔前面的请求调用实际上都是使用Mock服务,完全没有使用到后端服务。

在这里插入图片描述

七、代码导出:快速生成客户端代码

Postman支持将请求导出为多种语言的代码:

  1. 点击请求右侧的 按钮
  2. 选择语言(Python、JavaScript、Java等)
  3. 复制代码到你的项目中

在这里插入图片描述

八、请求导入:快速创建集合

可以从这些地方导入请求:

  • cURL命令
  • Swagger/OpenAPI文档
  • HAR文件
  • WSDL

特别实用的是从浏览器开发者工具直接复制cURL导入Postman。

在这里插入图片描述

九、分享集合:共享你的成果

  • 分享集合:导出为JSON文件

在这里插入图片描述

  • 也可以使用分享链接方式,不过前提需要能访问postman的地址。

十、唐叔的小结

Postman的这些高阶功能,就像瑞士军刀里的隐藏工具,平时可能不注意,但用起来真香!总结一下重点:

  1. 善用变量管理,让请求灵活适应不同环境
  2. 前后置脚本是自动化测试的灵魂
  3. Mock服务让前后端不再互相等待
  4. 自动化测试集成到CI/CD提升质量
  5. 代码导出功能节省开发时间

掌握这些技巧,你就能从Postman新手晋升为API测试高手!如果觉得有用,别忘了点赞收藏,有什么问题欢迎评论区交流~


往期文章推荐:

  • 告别重复劳动!Postman变量指南,让API测试飞起来 | 唐叔出品
  • 【唐叔实战】三步搞定!教你如何将浏览器请求轻松导入Postman
  • 【HTTP文件使用指南】唐叔手把手教你玩转HTTP请求,从入门到精通!