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

JMETER测试文件上传遇403错误(配置HTTP授权仍失败)

解决JMeter测试Drupal网站文件上传时的403 Forbidden问题

看起来你用错了认证方式——HTTP Authorization Manager只适用于HTTP Basic/Digest认证,而这个网站是基于表单的会话认证(从响应头能看出是Drupal 7,它的登录系统依赖表单提交+会话Cookie),所以这个管理器完全帮不上忙,这就是你收到403的核心原因。

下面是一步步解决的方案:

Drupal登录后会通过Cookie维持会话,必须在测试计划里添加这个元件:

  • 右键测试计划 -> 添加 -> 配置元件 -> HTTP Cookie Manager
  • 保持默认设置即可,它会自动保存服务器返回的Cookie,并在后续请求中自动带上。

2. 正确模拟登录流程

Drupal的登录表单有CSRF防护,不能直接硬编码用户名密码提交,必须先获取表单里的隐藏参数:

步骤2.1:获取登录表单的隐藏参数

  • 添加一个HTTP Request,方法选GET,路径填http://the-v.net/login
  • 添加一个CSS Selector Extractor(或者XPath Extractor)来提取以下参数:
    • form_token:CSS选择器填input[name='form_token'],属性选value,引用名称设为form_token
    • form_build_id:CSS选择器填input[name='form_build_id'],属性选value,引用名称设为form_build_id
    • form_id:CSS选择器填input[name='form_id'],属性选value,引用名称设为form_id

步骤2.2:提交登录请求

  • 再添加一个HTTP Request,方法选POST,路径填http://the-v.net/login
  • 在「Parameters」标签里添加以下参数:
    • name:你的用户名
    • pass:你的密码
    • form_token:${form_token}(引用刚才提取的参数)
    • form_build_id:${form_build_id}
    • form_id:${form_id}
    • op:Log in(这个是登录按钮的提交值,必须和页面上的一致)
  • 不用手动设置Content-Type,JMeter会自动用application/x-www-form-urlencoded

步骤2.3:验证登录成功

添加一个Response Assertion,检查响应内容里是否包含登录后的标识(比如你的用户名,或者页面上的"Logout"链接),确保登录请求没有返回403或重定向到登录页。

3. 构造文件上传请求

登录成功后,就可以处理文件上传了:

步骤3.1:获取上传页面的表单参数(如果需要)

  • 先添加一个GET请求到http://the-v.net/en/vtube/upload-video,同样用CSS Selector Extractor提取页面里的form_token、form_id等隐藏参数(如果上传表单有CSRF防护的话)

步骤3.2:配置文件上传请求

  • 添加HTTP Request,方法选POST,路径填http://the-v.net/en/vtube/upload-video
  • 切换到「Files Upload」标签,点击「Add」:
    • 「File Path」:选择你要上传的视频文件的本地路径
    • 「Parameter Name」:填写网站上传表单对应的文件字段名(比如查看浏览器开发者工具,上传时的字段名可能是files[video]之类的)
    • 「MIME Type」:填写对应视频格式的MIME类型,比如video/mp4、video/avi
  • 在「Parameters」标签里,添加刚才提取的form_token、form_id等参数,以及上传需要的其他字段(比如视频标题、描述等,根据页面表单来)
  • 同样不用手动设置Content-Type,JMeter会自动生成multipart/form-data格式的请求

4. 调试技巧

如果还是有问题,用浏览器的开发者工具(F12)对比实际请求和JMeter的请求:

  • 检查请求头里的Cookie是否和浏览器一致
  • 检查表单参数(包括隐藏的CSRF令牌)是否完全匹配
  • 查看JMeter的「View Results Tree」,看请求发送的内容和服务器返回的详细错误信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:35:49