postman全面讲解
使用postman注意事项
最好是不要登录使用,因为api数据是比较敏感的,登录后postman会保留用户数据,虽然postman自己说不会窥探,但还是要做好防范意识。
postman优点
- 多人协作:快捷导出文件,实现共享
- 自动化测试:通过使用集合Runner
postman请求参数化
使用{{tets}},双括号进行参数引用
postman Tests
通过JavaScripe代码来协助验证结果
通常已pm.test开头
常用的内置函数
可以在其中使用postman自带的内置函数,常用的内置函数如下:
检验响应码:Status code is 200
作用:验证接口返回响应码为200,其中200也可以替换为任意的响应码
设置全局变量,获取token:Set a global variable
🛠 典型使用场景:设置全局变量,列入获取token
在 Postman 的脚本环境中,console.log(\"Get auth token: \", accessToken)
这句话的含义和作用如下:
🔍 含义解析:
-
调试输出语句
- 这是一个标准的 JavaScript 调试命令,用于在 Postman 控制台打印变量内容
- 类似其他语言中的
print()
或System.out.println()
-
输出内容
- 静态文本:
\"Get auth token: \"
→ 固定提示信息 - 动态变量:
accessToken
→ 当前内存中的访问令牌变量值
- 静态文本:
📌 核心作用:
accessToken
是否被正确赋值undefined
或异常的原因⚠️ 安全提示:
- 生产环境慎用 真实令牌输出到控制台会暴露敏感数据 → 仅限测试环境使用
- 完成后移除 调试完毕建议注释或删除该语句:
🔎 查看输出位置:
- 打开 Postman 底部工具栏 → Console (View > Show Postman Console)
🌟 关键洞察:这个语句是 API 授权流程调试的生命线,能快速验证令牌获取是否成功,尤其当你的脚本涉及 OAuth 2.0 令牌刷新或 JWT 解析时必不可少
jsonData.accessToken 和jsonData[\"accessToken\"]
在 JavaScript 中访问对象属性的两种方式:jsonData.accessToken
和 jsonData[\"accessToken\"]
在功能上是完全等效的,但两者在灵活性、应用场景和底层机制上有重要区别:
🔑 核心区别对比表
jsonData.accessToken
jsonData[\"accessToken\"]
123key
)my-key
)💡 关键差异详解
1. 访问动态属性(方括号核心优势)
JavaScript// 动态确定属性名 const tokenType = \"Access\" + \"Token\";console.log(jsonData[tokenType]); // ✅ 输出 accessToken 的值// 点表示法无法实现 console.log(jsonData.tokenType); // ❌ 查找不存在的 tokenType 属性
2. 处理特殊字符键名
const response = { \"user-id\": 12345, // 含连字符的键名 \"full name\": \"John Doe\" // 含空格的键名};// 方括号表示法可访问console.log(response[\"user-id\"]); // ✅ 12345console.log(response[\"full name\"]); // ✅ \"John Doe\"// 点表示法会报错console.log(response.user-id); // ❌ 语法错误(试图做减法)console.log(response.full name); // ❌ 语法错误
3. 访问数字开头的属性
const data = { \"1stPlace\": \"Alice\"};console.log(data[\"1stPlace\"]); // ✅ \"Alice\"console.log(data.1stPlace); // ❌ SyntaxError(数字开头非法)
⚙️ 底层机制差异
- 点表示法:jsonData.accessToken
- 编译器直接解析为属性访问
- 等价于字节码
LDA obj, \"accessToken\"
- 方括号表示法:
jsonData[\"accessToken\"]
- 运行时计算括号内表达式
- 等价于:
const temp = \"accessToken\"; jsonData[temp]
🔬 性能提示:在需要数百万次迭代的超高性能场景中,点表示法通常快 10-20%,但绝大多数场景差异可忽略。
✅ 最佳实践指南
obj.property
✅obj[\"property-name\"]
✅obj[dynamicVar]
✅JavaScript
// 典型混合使用示例 const user = { id: \"U123\", \"contact-email\": \"test@example.com\" }; // 固定属性用点表示法 console.log(`User ID: ${user.id}`); // 特殊键名用方括号 const emailKey = \"contact-email\"; console.log(`Email: ${user[emailKey]}`); // 遍历所有属性必须用方括号 for(const key in user) { console.log(`${key}: ${user[key]}`); // ✅ 必须用方括号 }
⚠️ 常见误区
// 错误:试图用点表示法访问变量const prop = \"accessToken\";console.log(jsonData.prop); // ❌ 查找 \"prop\" 属性而非变量值// 正确:方括号接收变量console.log(jsonData[prop]); // ✅ 等价于 jsonData[\"accessToken\"]
在 Postman 脚本中,优先使用点表示法简化代码,但当遇到动态键名、特殊字符键名或需要兼容 JSON 规范时,必须使用方括号表示法。两种写法在结果上完全等价,选择取决于具体场景需求。