首页主机资讯Ubuntu Postman如何处理错误响应

Ubuntu Postman如何处理错误响应

时间2025-11-18 22:20:04发布访客分类主机资讯浏览1184
导读:Ubuntu 上 Postman 处理错误响应的实用流程 一 快速判定错误类型 查看状态行与响应体:优先确认 HTTP 状态码(如 4xx/5xx)、响应头和响应体中的错误信息;Postman 界面会展示这些关键信息。 打开 Postma...

Ubuntu 上 Postman 处理错误响应的实用流程

一 快速判定错误类型

  • 查看状态行与响应体:优先确认 HTTP 状态码(如 4xx/5xx)、响应头和响应体中的错误信息;Postman 界面会展示这些关键信息。
  • 打开 Postman Console:在菜单 View → Show Postman Console 打开控制台,能看到实际发送的请求与原始响应,便于定位问题。
  • 关注常见客户端提示:如 “Could not get any response” 多与网络、代理、SSL 或目标服务未监听有关。
  • 检查请求配置:核对 URL(协议、域名、端口、路径)请求方法(GET/POST 等)请求头(如 Authorization、Content-Type)请求体/参数是否正确。
  • 排除网络因素:确认本机与目标主机的网络连通性、是否存在 代理 影响、以及服务器端口是否开放。
  • 证书相关:自签名或不受信任 SSL 证书会导致握手失败;必要时在设置中临时关闭 SSL 验证或配置客户端证书。
  • 超时设置:过短的 Timeout 会让正常响应被判为超时,适当调大后复测。

二 在 Tests 脚本中标准化识别与断言

  • 基本断言模板:先判定状态码,再按内容结构校验,最后可做性能阈值检查。
// Tests
pm.test("Status is 2xx", () =>
 {
    
    pm.expect(pm.response.code).to.be.within(200, 299);

}
    );
    

pm.test("Content-Type is JSON", () =>
 {
    
    pm.expect(pm.response.headers.get("Content-Type")).to.include("application/json");

}
    );
    

pm.test("Response time <
     500ms", () =>
 {
    
    pm.expect(pm.response.responseTime).to.be.below(500);

}
    );
    
  • 统一处理 JSON 与非 JSON:对错误响应体做容错解析,并抽取关键字段用于断言与后续请求。
// Tests
let json;

try {
    
    json = pm.response.json();

}
 catch (e) {
    
    json = null;

}


if (json) {

    // 示例:按常见 API 错误字段做判定
    if (json.error) {
    
        pm.test("Has error field", () =>
     pm.expect(json.error).to.be.a("string"));

    }

    if (json.message) {
    
        pm.test("Has message field", () =>
     pm.expect(json.message).to.be.a("string"));

    }

    if (json.code !== undefined) {
    
        pm.test("Has code field", () =>
     pm.expect(Number.isInteger(json.code)).to.be.true);

    }

}
 else {
    
    // 非 JSON 时,直接对文本做包含性检查
    pm.test("Response is not JSON", () =>
 {
    
        pm.expect(pm.response.text()).to.be.a("string");

    }
    );

}

  • 将错误细节写入环境变量,供后续请求或报告使用。
// Tests
let json = {
}
    ;

try {
     json = pm.response.json();
 }
 catch (e) {
}


const errorInfo = {

    status: pm.response.code,
    statusText: pm.response.statusText,
    url: pm.request.url.toString(),
    method: pm.request.method,
    time: pm.response.responseTime,
    body: json || pm.response.text()
}
    ;
    

pm.environment.set("lastError", JSON.stringify(errorInfo, null, 2));
    
  • Pre-request Script 中按需设置 Authorization 等认证头,避免 401/403 因凭据缺失导致。
// Pre-request Script
const token = pm.environment.get("token");

if (token) {

    pm.request.headers.add({
 key: "Authorization", value: "Bearer " + token }
    );

}
    
  • 运行与调试:在集合或单个请求的 Tests 标签编写上述脚本,发送请求后在 “Test Results” 面板查看通过/失败;配合 Consoleconsole.log 输出中间变量,快速定位问题。

三 常见 HTTP 错误码的快速处理建议

状态码 含义 常见原因 排查要点
400 Bad Request 参数缺失/格式错误 核对请求参数、请求体 JSON 语法、Content-Type
401 Unauthorized 未认证或令牌失效 检查 Authorization 头、Token 是否过期、作用域是否匹配
403 Forbidden 权限不足 核对账号权限、API 密钥权限、访问策略
404 Not Found 路径错误或服务未部署 核对 URL 路径、端口、路由是否发布
408 Request Timeout 服务器处理慢或客户端超时过短 增大 Timeout、优化服务端处理
500 Internal Server Error 服务器代码异常 查看服务端日志、复现并定位根因
502/503 Bad Gateway / Service Unavailable 网关/上游不可用、服务未启动或端口未开放 检查服务是否监听、反向代理/网关配置、服务器端口与防火墙
504 Gateway Timeout 上游响应超时 优化上游性能、调整网关超时阈值

四 网络与证书层面的排查要点

  • 代理配置:Postman 默认使用 操作系统网络设置中的代理;若请求异常,核对代理开关与代理地址/认证是否正确。
  • 防火墙与端口:在 Ubuntu 服务器上确认目标端口处于 LISTEN 状态并已放行(如使用 ufw 或云安全组策略);端口未开放常导致 502/503/超时
  • SSL/TLS:遇到 自签名证书 或证书链不受信任,可在 Postman 设置中临时关闭 SSL certificate verification 验证;若服务器要求 客户端证书,在设置中添加证书后再测。
  • 连通性自检:在客户端用 curl 或浏览器直连目标地址与端口,排除 Postman 配置因素;必要时抓包或查看服务器日志。
  • 超时阈值:适当增大请求的 Timeout,避免正常但较慢的响应被判为失败。

五 自动化与持续集成中的错误判定

  • 使用 NewmanCI/CD 中批量运行集合,统一判定失败并生成报告。
# 安装 Newman
npm install -g newman

# 运行并生成 CLI 与 HTML 报告
newman run ./API-Tests.postman_collection.json \
  -e ./env.postman_environment.json \
  --reporters cli,html \
  --reporter-html-export report.html
  • GitHub Actions 中集成 Newman,提交代码即触发 API 回归测试,失败则阻断合并。
name: Postman API Tests
on:
  push:
    branches: [ main ]

jobs:
  run-tests:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: postman/newman-action@v1
        with:
          collection: ./API-Tests.postman_collection.json
          environment: ./env.postman_environment.json
          reporters: cli,html
          htmlReporter: ./report.html
  • 在集合的 Tests 中对关键业务断言失败(如状态码非 2xx、必填字段缺失),即可让 Newman 以非零退出码标识构建失败,实现质量门禁。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu Postman如何处理错误响应
本文地址: https://pptw.com/jishu/750597.html
ubuntu getconf如何查看系统语言 Ubuntu Postman如何使用API密钥

游客 回复需填写必要信息