APIFOX的mock脚本功能错误!

80 阅读1分钟

使用APIFOX的mock脚本功能

  • 代码如下
// 清晰地构建数据数组
const mockDataArray = [];
const startDate = new Date('2025-09-01T00:00:00').getTime(); // 获取起始时间戳
const intervalMs = 15 * 60 * 1000; // 15分钟毫秒数

for (let i = 0; i < 100; i++) {
  const currentTimeStamp = startDate + (i * intervalMs);
  const currentTime = new Date(currentTimeStamp);

  // 手动格式化日期时间,避免潜在的环境对象引用
  const year = currentTime.getFullYear();
  const month = String(currentTime.getMonth() + 1).padStart(2, '0');
  const day = String(currentTime.getDate()).padStart(2, '0');
  const hours = String(currentTime.getHours()).padStart(2, '0');
  const minutes = String(currentTime.getMinutes()).padStart(2, '0');
  const seconds = String(currentTime.getSeconds()).padStart(2, '0');

  const formattedTime = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;

  mockDataArray.push({
    forecast_time: formattedTime,
    speed5floorSum: Math.floor(Math.random() * 101),
    swddi_powerSum: Math.floor(Math.random() * 101),
    wind_powerSum: Math.floor(Math.random() * 101),
    swddi_etcSum: Math.floor(Math.random() * 101),
    wind_etcSum: Math.floor(Math.random() * 101)
  });
}

// 构建最终响应对象,确保结构简单
const finalResponseBody = {
  code: 200,
  msg: "OK",
  data: mockDataArray // 确保 data 字段被正确设置
};

// 设置响应体
$$.mockResponse.setBody(finalResponseBody);

一定要升级到 2.7.33 版本!不然就连他们官网的mock示例都运行不了!!!!!

  • 会报错
{
  "apifoxError": {
    "code": 500001,
    "message": "Converting circular structure to JSON\n    --> starting at object with constructor 'Object'\n    |     property 'parser' -> object with constructor 'Object'\n    --- property 'socket' closes the circle"
  }
}