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

如何在Apache Benchmark中发送form-data参数并完成基准测试

解决Apache Benchmark发送form-data参数的问题

直接用ab的-p参数失败,是因为ab默认将请求体按application/x-www-form-urlencoded处理,而multipart/form-data需要严格的格式规范和正确的请求头。以下是具体解决方案:

1. 构造符合multipart格式的请求体文件

创建一个文本文件(比如命名为form_body.txt),内容如下,注意边界符要唯一,且每个字段的格式要严格遵守:

----CustomBoundary12345
Content-Disposition: form-data; name="usecase_name"

Code Generation
----CustomBoundary12345
Content-Disposition: form-data; name="user_input"

Generate function to add two numbers
----CustomBoundary12345
Content-Disposition: form-data; name="language"

py
----CustomBoundary12345
Content-Disposition: form-data; name="token"

Xenius_df227a0a-c79f-45fa-9c5a-69ab34729159
----CustomBoundary12345
Content-Disposition: form-data; name="llmguard"

false
----CustomBoundary12345--
  • 每行结尾请使用Unix风格的LF换行符,避免Windows的CRLF导致格式错误
  • 边界符(示例中的----CustomBoundary12345)可以自定义,只要保证唯一即可

2. 执行ab基准测试命令

使用-p指定请求体文件,-T指定正确的Content-Type(包含边界符),完整命令示例:

ab -n 100 -c 10 -p form_body.txt -T "multipart/form-data; boundary=----CustomBoundary12345" http://your-server-ip/usecase/run_usecase_fromvs
  • -n:总请求数,根据你的测试需求调整
  • -c:并发数,根据你的测试需求调整
  • 替换http://your-server-ip为实际的服务域名或IP地址

关键注意事项

  • 请求体文件中的边界符必须和-T参数里的完全一致,包括前后的----
  • 确保每个字段的Content-Disposition头正确指定name属性,且头和字段值之间有一个空行
  • 最后一行必须以--边界符--结尾,标志multipart请求体结束

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 23:13:15