我们的想法是在JMeter中构建一个使用HTTP PUT方法上传文件的采样器。我正在尝试按照official documentation将整个内容正文指定为没有参数名称的文件。
java.lang.NullPointerException: charsetName
at java.lang.String.<init>(Unknown Source)
at java.lang.String.<init>(Unknown Source)
at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sendPutData(HTTPHC4Impl.java:1067)
at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:274)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:62)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1054)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1043)
at org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:416)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:271)
at java.lang.Thread.run(Unknown Source)
这似乎表明JMeter在填写请求正文时遇到问题。我可以通过为请求指定参数来消除此错误,但我希望整个主体成为照片数据。这是我想要完成的CURL系列:
curl -u testuser:testpass "http://localhost:8080/photo" -T photo.jpg -H "content-type:image/jpeg"
我已经尝试将内容编码设置为UTF-8,就像我在一篇文章中看到的那样,但这没有改变。
我在Windows 7 x64上运行Java 1.7.0。在jmeter.log中没有产生任何兴趣,wireshark告诉我JMeter没有发送请求。
有什么想法吗?提前谢谢。
答案 0 :(得分:1)
原来这是一个错误,JMeter的优秀人员能够很快修复:https://issues.apache.org/bugzilla/show_bug.cgi?id=52897
使用每晚构建解决了我的问题,现在它可能已经进入了发布阶段。
答案 1 :(得分:0)
使用Raw HTTP Request来完成此任务。您可以在“请求数据”中指定标题,也可以指定包含PUT正文的文件。
可能会找到一些详细信息here
答案 2 :(得分:0)
我遇到了图片上传问题,并在https://stackoverflow.com/a/2115944/455363找到了答案。 在这里进行建议的更改后,我不得不重新记录交易并进行编辑,我成功地上传了文件。
希望这有帮助。