postman 使用简单汇总
postman官网下载地址:https://www.postman.com/downloads/
Postman支持功能
1、快速构建
2、参数化与变量设置提取
3、查看请求数据
4、提供断言功能
5、批量运行
6、设置环境变量
Postman使用
构建请求
1、get请求,如果带有参数,可通过?追加到路径
2、post请求,参数格式支持:
FORM格式:Body –> form-data
JSON格式:Body –> raw –> JSON
文件格式: Body –> form-data –> File
参数化与预处理
在 Pre-request Script 和 Tests 脚本中使用封装好的语句获取或者设置对应变量
请求参数化:
FORM格式:
JSON格式:
{
"demo1": "{{timeFormat}}",
"remark": "标题{{$randomDomainWord}}",
"name": "{{$randomStreetName}}"
}
自定义参数预处理:便于参数引用定义的变量
//自定义的变量,可在请求中使用 //设置测试集变量,适用范围:在定义的测试集可用其他测试集不可用 pm.collectionVariables.set("demo1",("0000" + (Math.random()*Math.pow(36,7) << 0).toString(36)).slice(-7)); //设置全局变量 var moment = require('moment'); var date = moment().format("YYYY-MM-DD HH:mm:ss"); // 输入到控制台,查看参数设置是否正确 console.log(date); pm.globals.set("demo2", date); // 设置环境变量 pm.environment.set("book_url", "www.baidu.com"); //域名
查看请求与响应数据
请求与响应原始数据:可通过postman控制台console查看:
响应结果数据:
提供断言功能
断言一般验证:
验证服务响应状态码
验证响应体中是否包含某个字符串
验证响应体中某个值是否等于预期值
断言设置入口:
断言模板demo:
/ Status Code:Code is 200 // 验证响应状态码 pm.test("响应状态码为 200", function () { pm.response.to.have.status(200); }); // Response Body:contains string // 验证响应体中是否包含某个字符串 pm.test("响应体中包含预期的字符串", function () { pm.expect(pm.response.text()).to.include("xxx"); }); // Response Body:JSON value check // 验证 JSON 中的某个值是否等于预期的值 pm.test("书籍名称为 xxx", function () { var jsonData = pm.response.json(); pm.expect(jsonData[0].name).to.eql("xxx"); }); // Response Body:Is equal to a string // 验证响应体是否与某个字符串完全相同 pm.test("响应体正确", function () { pm.response.to.have.body("response_body_string"); }); // Response Body:Content-Type header check // 验证响应头信息中的 Content-Type 是否存在 pm.test("Content-Type is present", function () { pm.response.to.have.header("Content-Type"); }); // Response time is less than 200ms // 验证响应时间是否小于某个值 pm.test("Response time is less than 200ms", function () { pm.expect(pm.response.responseTime).to.be.below(200); });
批量运行
批量运行,既可以是整个项目集也可以是项目下某个模块。
设置环境变量&提取变量
设置环境变量:
pm.environment.set("book_url", "www.baidu.com"); //域名
提取变量:
// 获取已被定义过的全局变量 var status = pm.globals.get("status"); // 获取已被定义过的测试集变量 var petId = pm.collectionVariables.get("petId"); // 获取环境变量 var url = pm.environment.get("baseURL"); //提取服务端返回的数据 var jsonData = pm.response.json(); var var1= jsonData.data.var1; //提取服务端返回的var1 var var2= jsonData.data.var2; //提取服务端返回的var2 pm.globals.set("var1", var1); pm.globals.set("var2", var2); //把提取的值设置为全局变量,供之后 //关联的接口使用
变量的优先级
优先级从高至低为:Data -> Enviroment -> Collection -> Global -> Local
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)