You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postman API测试断言错误:'405'需为数字的问题排查

问题分析与解决

核心问题定位

报错AssertionError: expected '405' to be a number指向两个关键问题:

  1. API返回了405状态码(请求方法不允许),直接不符合你第一个测试中对201/202状态码的预期
  2. 请求失败后,响应体并非创建用户成功的预期结构,其中某个字段(大概率不是真正的id)的值为字符串'405',导致你对bodyData.id的数字类型断言失败

405错误的排查方向

  • 确认API端点合法性:检查请求URL是否正确,该端点是否支持POST方法(参考对应API文档)
  • 检查请求头配置:确保设置了正确的Content-Type(比如发送JSON请求体时需设为application/json)
  • 验证请求体格式:确认请求体包含API要求的所有必填字段,格式符合规范

测试代码优化

当前代码会在请求失败后继续执行后续断言,容易产生混淆的错误信息。可以调整代码,确保仅在请求成功时才验证id字段:

// 调试用:打印响应状态码和原始响应体
console.log('响应状态码:', pm.response.code);
console.log('原始响应体:', pm.response.text());

pm.test("POST请求成功", function () {
    pm.expect(pm.response.code).to.be.oneOf([201, 202]);
});

pm.test("成功创建用户ID", () => {
    // 先确保请求成功,再解析响应体
    pm.expect(pm.response.code).to.be.oneOf([201, 202]);
    const bodyData = pm.response.json();
    pm.expect(bodyData.id).to.be.a("number");
});

// 可选:添加响应格式验证
pm.test("响应为JSON格式", () => {
    pm.response.to.be.json();
});

解决步骤

  1. 优先解决405错误,确保POST请求能返回201/202状态码
  2. 重新运行测试,验证id字段的数字类型断言是否通过

内容的提问来源于stack exchange,提问作者Aristarchus24

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 10:15:43