アイデアは、HTTP PUT メソッドを使用してファイルをアップロードするサンプラーを JMeter で構築することです。公式ドキュメントに従って、コンテンツ本体全体をパラメーター名のないファイルとして指定しようとしています。
- 何が起こるべきか: ファイルがアップロードされ、サーバーは 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 がリクエストを送信していないことを通知します。
何か案は?前もって感謝します。