作者:唐叔在学习
关键词标签: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×tamp=${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)
批量运行整个集合的请求,并生成测试报告:
- 点击Collections → 选择集合 → Run
- 设置迭代次数、延迟等参数
- 查看详细的测试结果
2. Newman:命令行中的Postman
Newman让你可以在CI/CD流程中运行Postman集合:
npm install -g newman
newman run mycollection.json -e env.json --reporters cli,html
六、Mock服务:前后端并行开发
前端不用等后端,自己造数据:
- 创建Mock服务器
- 定义Mock路由和响应示例
- 前端直接调用Mock URL
唐叔前面的请求调用实际上都是使用Mock服务,完全没有使用到后端服务。
七、代码导出:快速生成客户端代码
Postman支持将请求导出为多种语言的代码:
- 点击请求右侧的
</>
按钮 - 选择语言(Python、JavaScript、Java等)
- 复制代码到你的项目中
八、请求导入:快速创建集合
可以从这些地方导入请求:
- cURL命令
- Swagger/OpenAPI文档
- HAR文件
- WSDL
特别实用的是从浏览器开发者工具直接复制cURL导入Postman。
九、分享集合:共享你的成果
- 分享集合:导出为JSON文件
- 也可以使用分享链接方式,不过前提需要能访问postman的地址。
十、唐叔的小结
Postman的这些高阶功能,就像瑞士军刀里的隐藏工具,平时可能不注意,但用起来真香!总结一下重点:
- 善用变量管理,让请求灵活适应不同环境
- 前后置脚本是自动化测试的灵魂
- Mock服务让前后端不再互相等待
- 自动化测试集成到CI/CD提升质量
- 代码导出功能节省开发时间
掌握这些技巧,你就能从Postman新手晋升为API测试高手!如果觉得有用,别忘了点赞收藏,有什么问题欢迎评论区交流~
往期文章推荐: