JMeter 5.5上传含特殊字符文件名的文件失败求助
JMeter 5.5上传含特殊字符文件名问题解决方法
针对POST请求上传文件名含é、è、à等特殊字符时被替换为“?”的问题,可通过以下步骤解决——这并非JMeter的原生限制,多由编码环境不匹配导致:
修改JMeter启动参数
在JMeter启动脚本(jmeter.bat或jmeter.sh)中添加JVM参数,同时设置文件编码和系统文件名编码:# Windows(jmeter.bat开头添加) SET JVM_ARGS="-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8" # Linux/macOS(jmeter.sh开头添加) export JVM_ARGS="-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8"配置HTTP请求采样器
- 在HTTP请求采样器的“参数”标签下,设置“Content encoding”为
UTF-8; - 切换到“高级”标签,勾选“Use multipart/form-data for POST”,确保表单提交格式正确。
- 在HTTP请求采样器的“参数”标签下,设置“Content encoding”为
改用JSR223 PreProcessor(Groovy)配置文件
放弃BeanShell,用Groovy脚本手动指定文件名,避免自动编码异常:def uploadFiles = [] def fileArg = new org.apache.jmeter.protocol.http.util.HTTPFileArg( "/绝对路径/nameWithSpecialCharacters_éè.txt", // 文件本地路径 "file_1", // 表单字段名 "text/plain", // 文件MIME类型 "nameWithSpecialCharacters_éè.txt" // 手动指定带特殊字符的文件名 ) uploadFiles.add(fileArg) sampler.setHTTPFiles(uploadFiles as org.apache.jmeter.protocol.http.util.HTTPFileArg[])调整系统终端编码
- Windows:运行JMeter前执行命令
chcp 65001切换到UTF-8编码; - Linux/macOS:执行
export LC_ALL=en_US.UTF-8设置终端默认编码。
- Windows:运行JMeter前执行命令
内容的提问来源于stack exchange,提问作者user_412857
相关产品推荐
相关产品推荐

