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

使用Newman运行Postman集合遍历数据时遭遇429错误求解决方案

解决Postman/Newman调用Amazon SP-API的429限流问题

一、单个请求的重试函数实现

在Postman的请求Tests标签中添加以下脚本,可针对429限流错误自动重试:

// 匹配429状态码或QuotaExceeded错误
if (responseCode.code === 429 || pm.response.json().errors?.[0]?.code === "QuotaExceeded") {
    const maxRetries = 3; // 最多重试3次
    let currentRetry = pm.environment.get("retryCount") || 0;

    if (currentRetry < maxRetries) {
        currentRetry++;
        pm.environment.set("retryCount", currentRetry);
        // 等待2秒后重试(可根据实际情况调整时长)
        setTimeout(() => {
            pm.sendRequest(pm.request, (err) => {
                if (!err) pm.environment.set("retryCount", 0); // 重试成功重置计数
            });
        }, 2000);
    } else {
        pm.environment.set("retryCount", 0); // 达最大次数后重置
        console.log("已达最大重试次数,请求失败");
    }
} else {
    pm.environment.set("retryCount", 0); // 非限流错误直接重置计数
}

使用前需先在Postman环境变量中创建retryCount变量,初始值设为0。

二、全局控制请求间隔(从根源避免限流)

因为SP-API限制每秒5次请求,可在Collection的Pre-request Script中添加延迟逻辑,确保请求频率不超限:

const delayMs = 200; // 每秒5次请求,单次间隔200毫秒(1000/5)
const lastRequestTime = pm.environment.get("lastRequestTime") || Date.now();
const elapsedTime = Date.now() - lastRequestTime;

if (elapsedTime < delayMs) {
    setTimeout(() => {
        pm.environment.set("lastRequestTime", Date.now());
    }, delayMs - elapsedTime);
} else {
    pm.environment.set("lastRequestTime", Date.now());
}

如果用Newman命令行运行,也可直接加参数设置全局延迟:

newman run 你的集合文件.json -d 你的CSV数据文件.csv --delay-request 200

三、其他实用优化建议

  • 分批次处理CSV:把50条数据拆成多组(比如每20条一组),组与组之间添加10秒左右的等待,让API配额有恢复时间。
  • 利用响应头动态调整等待时长:SP-API响应头会返回x-amzn-RateLimit-Remaining(剩余配额),可根据剩余值调整等待时间:
const remainingQuota = pm.response.headers.get("x-amzn-RateLimit-Remaining");
if (remainingQuota && parseInt(remainingQuota) < 2) {
    setTimeout(() => {}, 1000); // 剩余配额不足时多等1秒
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 12:00:24