温馨提示×

Ubuntu下Postman如何使用脚本调试功能

小樊
35
2025-11-30 11:10:51
栏目: 智能运维

Ubuntu下Postman脚本调试功能使用指南

一 环境准备与打开控制台

  • 安装方式任选其一:
    • 使用 Snap:sudo apt update && sudo apt install snapd && sudo snap install postman
    • 手动安装:下载 Linux 版本压缩包、解压至 /opt、创建软链 sudo ln -s /opt/Postman/Postman /usr/local/bin/postman,必要时创建桌面启动器。以上方式均可在 Ubuntu 上正常运行 Postman 桌面客户端。
  • 打开控制台:在顶部菜单选择 View → Show Postman Console,或使用快捷键 Ctrl+Alt+C。控制台用于查看脚本日志、请求与响应细节,是定位脚本问题的首要入口。

二 脚本类型与基本用法

  • Pre-request Script:在请求发送前执行,常用于设置变量、动态参数、签名等。
  • Tests:在收到响应后执行,用于断言校验与结果处理。
  • 常用对象与语法要点:
    • 使用 pm 对象访问环境与请求:pm.environment.get/set、pm.request.headers.add 等。
    • 使用 pm.testChai 断言:pm.test(“desc”, () => { pm.expect(…).to… })。
    • 使用 console.log/error 输出调试信息,配合控制台查看。
  • 最小可用示例:
    • Pre-request Script
      console.log("Pre-request running, baseUrl =", pm.environment.get("baseUrl"))
      const ts = Date.now()
      pm.environment.set("ts", ts)
      pm.request.headers.add({ key: "X-Timestamp", value: ts })
      
    • Tests
      pm.test("Status is 200", () => pm.response.to.have.status(200))
      pm.test("Response time < 500ms", () => pm.expect(pm.response.responseTime).to.be.below(500))
      const json = pm.response.json()
      pm.expect(json).to.have.property("id")
      
  • 运行与查看:点击 Send 发送请求,随后在 Console 查看输出,在 Response → Tests 查看断言结果。

三 断点与流程控制技巧

  • 内置“断点”能力:Postman 桌面客户端不提供图形化断点,但可通过以下方式达到相同效果。
  • 使用 debugger 语句:在脚本中写入 debugger;,随后在 Chrome DevTools 中暂停执行并查看调用栈与变量(适合复杂对象与异步场景)。
  • 条件暂停与流程控制:
    • 通过环境变量控制是否暂停:在 Tests 中根据状态码设置标志位,Pre-request 中读取标志位决定是否继续。
    • 使用 postman.setNextRequest(null) 停止请求链,或指定下一个请求名实现条件跳转,从而“单步”执行流程。
  • 示例
    • Tests
      const code = pm.response.code
      pm.environment.set("lastCode", code)
      if (code !== 200) {
        pm.environment.set("stopChain", "true")
        postman.setNextRequest(null) // 停止后续
      }
      
    • Pre-request Script
      if (pm.environment.get("stopChain") === "true") {
        console.warn("Execution paused by stopChain flag")
        postman.setNextRequest(null)
      } else {
        // 正常执行
      }
      
  • 小结:结合 debugger、环境变量与 postman.setNextRequest,即可在 Ubuntu 上实现灵活的“断点 + 单步 + 条件跳过”调试方案。

四 批量运行与自动化测试

  • 集合运行器:在集合侧边栏选择 Run,批量执行请求与脚本,适合回归与数据驱动测试。
  • 数据变量:在运行器中使用 Data 导入 CSV/JSON,脚本中以 data 变量访问每行数据,实现参数化测试。
  • 变量与认证串联:在登录请求的 Tests 中将 token 写入环境;后续请求在 Headers 中使用 Bearer {{token}} 或 Pre-request 动态设置,保证全链路自动化。
  • 快速示例(登录后设置 token 并在后续请求使用)
    • 登录请求 → Tests
      const json = pm.response.json()
      pm.expect(json).to.have.property("access_token")
      pm.environment.set("access_token", json.access_token)
      
    • 其他请求 → Headers
      Authorization: Bearer {{access_token}}
      
  • 运行与校验:在 Collection Runner 中执行,查看每个请求的脚本日志与断言结果,快速定位失败点。

五 常见问题与排查清单

  • 看不到日志:确认已打开 Postman Console(Ctrl+Alt+C),并在脚本中使用 console.log/error 输出关键信息。
  • 脚本报错定位:优先查看 Console 的错误栈与行号;必要时加入更多日志或使用 debugger 在 DevTools 中逐步执行。
  • 变量未生效:检查是否选中了正确的 Environment,并使用 pm.environment.get/set 读写;在 URL/Header/Body 中使用 {{var}} 引用。
  • 集合批量执行异常:核对 Data 文件字段名与脚本中的 data 变量一致;确认前置请求成功后再执行依赖请求(必要时用 setNextRequest 控制顺序)。

0