背景:在JMeter组件之HTTP请求--上传文件中,介绍了如何使用JMeter调用上传文件接口进行文件上传。但最近在用这种方式使用的时候遇到新的问题。这里简要记录如何解决的这个问题。
步骤:基本的步骤详见JMeter组件之HTTP请求--上传文件
问题:文件未能正常上传,接口返回错误码:400
先列举走的“弯路”:
1. 选择客户端的实现方式。在HTTP请求的Advanced->Client implementation中选择HttpClient4;不选择任何方式。
2. 修改了MIME类型。不输入;输入multpart/form-data...
上述方式都未能解决问题,出现返回码:500,或者413。总之都没有成功。
原因:文件过大,这里上传的文件已经达到了300M+,JMeter是使用Java实现的客户端,所以在上传文件时,使用了Heap,由于缺省配置比较小,所以导致文件上传无法成功。当Advanced->Client implementation中选择Java时,控制台日志有报错:Java.lang.OutOfMemoryError: Java heap space...
解法:
1. 在JMeter的安装目录下,找到bin/jmeter.bat文件,使用记事本打开。
2. 查找字段:HEAP。缺省设置为: set HEAP=-Xms512m -Xmx512m
3. 修改:set HEAP=-Xms2048m -Xmx2048m
4. 保存并重启JMeter。
5. 重新测试接口后成功。
参考资料: