这个想法是在 JMeter 中构建一个采样器,它将使用 HTTP PUT 方法上传文件。我正在尝试按照官方文档将整个内容主体指定为没有参数名称的文件。
- 应该发生什么:文件被上传,服务器返回 201: created
- 实际发生的情况:
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 没有发送请求。
有任何想法吗?提前致谢。