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

如何在TestCafe发送请求前通过onRequest修改请求体负载

TestCafe请求体修改失效问题修复

核心问题

你代码里的Buffer.from()用法错误——直接传入JavaScript对象时,Buffer会把对象转成"[object Object]"字符串,而不是你预期的JSON序列化内容,导致请求体被错误替换,自然看不到效果。

修复后的代码

export class MyRequestHook extends RequestHook {
  onRequest(event) {
    try {
      if (event.requestOptions?.body) {
        // 解析原请求体,新增字段后转为JSON字符串,再生成Buffer
        const originalBody = JSON.parse(event.requestOptions.body.toString());
        const modifiedBody = { ...originalBody, newOption: true };
        event.requestOptions.body = Buffer.from(JSON.stringify(modifiedBody), 'utf8');
        console.log('修改后的请求体:', modifiedBody);
      }
    } catch (error) {
      console.error('修改请求体出错:', error);
    }
  }

  onResponse(e) {}
}

// 钩子初始化与使用
const customHook = new MyRequestHook(/api\/get-some-staff/);

fixture.only`TEST FIXTURE`
  .page(`url-url`)
  .requestHooks(customHook)
  .disablePageCaching;

额外验证点

  • 检查URL正则/api\/get-some-staff/是否准确匹配目标请求,避免路径拼写或正则规则错误。
  • 确认目标请求的Content-Type为application/json,保证服务端能正确解析修改后的JSON格式请求体。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 18:40:40