Ubuntu中Postman脚本怎么编写
Ubuntu中Postman脚本编写指南
Postman的脚本功能主要用于前置数据处理(Pre-request Script)和响应结果验证(Tests Script),均通过JavaScript语法编写,支持环境变量、断言、异步请求等特性,适用于Ubuntu系统的Postman桌面应用。
一、脚本入口与基础操作
-
打开脚本编辑界面
在Postman中创建或选中一个请求,点击编辑器下方的Pre-request Script(前置脚本,请求发送前执行)或Tests(测试脚本,响应返回后执行)选项卡,即可进入脚本编写区域。 -
核心对象与常用方法
Postman脚本通过pm
对象实现所有功能,关键方法如下:- 变量操作:
- 获取环境变量:
pm.environment.get("variable_key")
- 设置环境变量:
pm.environment.set("variable_key", "value")
(仅支持字符串,对象需用JSON.stringify
转换) - 获取全局变量:
pm.globals.get("variable_key")
- 设置全局变量:
pm.globals.set("variable_key", "value")
- 获取环境变量:
- 请求操作:
- 获取请求对象:
pm.request
(可修改URL、Headers、Body等) - 异步发送请求:
pm.sendRequest(url/options, callback)
(用于链式调用,如获取Token后再发主请求)
- 获取请求对象:
- 响应操作:
- 获取响应对象:
pm.response
(包含状态码、响应体、耗时等信息) - 解析JSON响应:
pm.response.json()
(返回JavaScript对象)
- 获取响应对象:
- 信息与日志:
- 获取当前迭代信息:
pm.info.iteration
(当前循环次数) - 输出调试日志:
console.log("debug info", variable)
(通过Postman控制台查看)。
- 获取当前迭代信息:
- 变量操作:
二、前置脚本(Pre-request Script):请求前的数据处理
前置脚本用于准备请求所需的动态数据,例如生成随机参数、加密敏感信息、设置请求头等。
- 生成随机数据:
// 生成10位随机字符串(字母+数字) const randomStr = Math.random().toString(36).substr(2, 10); pm.environment.set("randomStr", randomStr); // 生成10位随机整数 const randomNum = Math.floor(Math.random() * 1e10); pm.environment.set("randomNum", randomNum); // 生成秒级时间戳(常用于接口时间校验) const timestamp = Math.floor(Date.now() / 1000).toString(); pm.environment.set("timestamp", timestamp);
- 设置请求头:
若接口需要认证Token,可从环境变量获取并设置:const token = pm.environment.get("auth_token"); pm.request.headers.add({ key: "Authorization", value: `Bearer ${ token} ` } );
- 发送前置请求:
若需先调用其他接口获取数据(如获取Token),可使用pm.sendRequest
:pm.sendRequest("https://api.example.com/login", (error, response) => { if (!error) { const token = response.json().access_token; pm.environment.set("auth_token", token); // 存储Token供后续请求使用 } } ); ```。
三、测试脚本(Tests Script):响应结果的验证
测试脚本用于验证接口响应的正确性,通过pm.test
函数组织断言,支持状态码、响应体、响应时间等检查。
- 基础断言示例:
// 验证状态码为200 pm.test("Status code is 200", () => { pm.response.to.have.status(200); } ); // 验证响应时间小于200ms pm.test("Response time is less than 200ms", () => { pm.expect(pm.response.responseTime).to.be.below(200); } ); // 验证响应体包含特定字段 pm.test("Response contains required fields", () => { const jsonData = pm.response.json(); pm.expect(jsonData).to.have.property("id"); pm.expect(jsonData).to.have.property("name"); } );
- 复杂断言(JSON数据验证):
若接口返回JSON数据,可使用deep
属性验证嵌套字段:pm.test("Nested fields validation", () => { const jsonData = pm.response.json(); pm.expect(jsonData.user).to.deep.include({ id: 1, email: "user@example.com" } ); } );
- 环境变量传递:
若前置脚本设置了变量,可在测试脚本中获取并验证:pm.test("Timestamp matches", () => { const responseTimestamp = pm.response.json().timestamp; const envTimestamp = pm.environment.get("timestamp"); pm.expect(responseTimestamp).to.eql(envTimestamp); // 验证响应时间戳与前置设置的是否一致 } ); ```。
四、调试与优化技巧
-
查看脚本执行日志
在Postman中点击View → Show Postman Console(或使用快捷键Alt+Ctrl+C
),可查看console.log
输出的调试信息,帮助定位脚本问题。 -
使用断点调试
在脚本编辑区域点击行号左侧,设置断点,然后点击Send按钮,可逐行执行脚本并查看变量值(Postman Desktop支持此功能)。 -
数据驱动测试
结合Postman的Collection Runner,可通过CSV/JSON文件导入测试数据,实现批量测试。例如,在前置脚本中读取迭代数据:const userId = pm.iterationData.get("userId"); // 从CSV文件中获取userId pm.request.url.query.add({ key: "userId", value: userId } ); ```。
通过以上步骤,可在Ubuntu系统中使用Postman编写高效的API脚本,实现自动化测试、数据处理及环境变量管理,提升API开发与测试的效率。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu中Postman脚本怎么编写
本文地址: https://pptw.com/jishu/730476.html