> 技术文档 > postman全面讲解

postman全面讲解


使用postman注意事项

最好是不要登录使用,因为api数据是比较敏感的,登录后postman会保留用户数据,虽然postman自己说不会窥探,但还是要做好防范意识。

postman优点

  1. 多人协作:快捷导出文件,实现共享
  2. 自动化测试:通过使用集合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) 这句话的含义和作用如下:

🔍 含义解析:
  1. 调试输出语句

    • 这是一个标准的 JavaScript 调试命令,用于在 Postman 控制台打印变量内容
    • 类似其他语言中的 print() 或 System.out.println()
  2. 输出内容

    • 静态文本\"Get auth token: \" → 固定提示信息
    • 动态变量accessToken → 当前内存中的访问令牌变量值
📌 核心作用:
作用 说明 实时验证 确认 accessToken 是否被正确赋值 排查授权问题 检查 OAuth/Token 获取流程是否正常 调试脚本 定位变量值为 undefined 或异常的原因 监控流程 在 Collection Runner 运行时观察凭证变化
⚠️ 安全提示:
  1. 生产环境慎用 真实令牌输出到控制台会暴露敏感数据 → 仅限测试环境使用
  2. 完成后移除 调试完毕建议注释或删除该语句:
🔎 查看输出位置:
  1. 打开 Postman 底部工具栏 → Console (View > Show Postman Console)

🌟 关键洞察:这个语句是 API 授权流程调试的生命线,能快速验证令牌获取是否成功,尤其当你的脚本涉及 OAuth 2.0 令牌刷新或 JWT 解析时必不可少

jsonData.accessToken 和jsonData[\"accessToken\"]

在 JavaScript 中访问对象属性的两种方式:jsonData.accessTokenjsonData[\"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(数字开头非法)

⚙️ 底层机制差异

  1. 点表示法:jsonData.accessToken
  • 编译器直接解析为属性访问
  • 等价于字节码 LDA obj, \"accessToken\"
  1. 方括号表示法jsonData[\"accessToken\"]
  • 运行时计算括号内表达式
  • 等价于:const temp = \"accessToken\"; jsonData[temp]

🔬 性能提示:在需要数百万次迭代的超高性能场景中,点表示法通常快 10-20%,但绝大多数场景差异可忽略。

✅ 最佳实践指南
场景 推荐写法 固定属性名(合法标识符) obj.property ✅ 含特殊字符的键名 obj[\"property-name\"] ✅ 根据变量值访问属性 obj[dynamicVar] ✅ 需要 JSON 兼容性 优先方括号表示法 🔼 高频访问关键路径 点表示法(微优化) ⚡

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 规范时,必须使用方括号表示法。两种写法在结果上完全等价,选择取决于具体场景需求。