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

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

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

一、数据格式处理

是的,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 newman
newman 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测试高手!如果觉得有用,别忘了点赞收藏,有什么问题欢迎评论区交流~


往期文章推荐:

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值