2016-08-16 11 views
0

Apache JMeterを使用して、ファイルのアップロードシナリオでサーバーのパフォーマンスをテストしようとしています。具体的には、私はこのcurlコマンドを実現するために、テスト計画を作成するために、HTTPテストスクリプトレコーダーを使用しています:JMeterで大きなファイルのアップロードが失敗する

$ curl -k -x localhost:8888 -XPOST -d @filename.json -H "Content-Type: application/json" "https://hostname:port" 

私はfilename.jsonは数十行の長だったとき前に、この方法で成功を収めたが、今際います「doesnの生のカールコマンドので、私はこの問題は何とかJMeterのであると信じて、

java.net.SocketException: Broken pipe 
at java.net.SocketOutputStream.socketWrite0(Native Method) 
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109) 
at java.net.SocketOutputStream.write(SocketOutputStream.java:153) 
at sun.security.ssl.OutputRecord.writeBuffer(OutputRecord.java:431) 
at sun.security.ssl.OutputRecord.write(OutputRecord.java:417) 
at sun.security.ssl.SSLSocketImpl.writeRecordInternal(SSLSocketImpl.java:876) 
at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:847) 
at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:123) 
at org.apache.http.impl.io.AbstractSessionOutputBuffer.write(AbstractSessionOutputBuffer.java:181) 
at org.apache.http.impl.io.ContentLengthOutputStream.write(ContentLengthOutputStream.java:115) 
at org.apache.http.impl.io.ContentLengthOutputStream.write(ContentLengthOutputStream.java:122) 
at org.apache.http.entity.StringEntity.writeTo(StringEntity.java:169) 
at org.apache.http.entity.HttpEntityWrapper.writeTo(HttpEntityWrapper.java:96) 
at org.apache.http.impl.client.EntityEnclosingRequestWrapper$EntityWrapper.writeTo(EntityEnclosingRequestWrapper.java:112) 
at org.apache.http.impl.entity.EntitySerializer.serialize(EntitySerializer.java:117) 
at org.apache.http.impl.AbstractHttpClientConnection.sendRequestEntity(AbstractHttpClientConnection.java:265) 
at org.apache.http.impl.conn.ManagedClientConnectionImpl.sendRequestEntity(ManagedClientConnectionImpl.java:216) 
at org.apache.jmeter.protocol.http.sampler.MeasuringConnectionManager$MeasuredConnection.sendRequestEntity(MeasuringConnectionManager.java:207) 
at org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:237) 
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:122) 
at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:686) 
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:488) 
at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884) 
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) 
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55) 
at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:619) 
at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:379) 
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74) 
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1146) 
at org.apache.jmeter.protocol.http.proxy.Proxy.run(Proxy.java:240) 

実際:私は、私は次のエラーを取得する、およそ72,000株(〜5.1Mのファイル)でJSONをテストしたいですJMeterを伴うもの

curl -XPOST -d @filename.json -H "Content-Type: application/json" "https://hostname:port" 

は、問題なくファイルをアップロードします。

誰でもこの問題が発生しましたか?どんな助けでも大歓迎です。ありがとうございました。

答えて

0

をテスト計画にあなたの質問に詳細を与え、テスト方法、あなたは、複数のユーザーまたは単一のスレッドで、このテストを実行していますか?

JMeterに割り当てられたメモリを確認し、複数のユーザーでこれを実行している場合に増やしてください。 ファイルが選択されていることを確認してください。理想的には、アップロードするファイルはbinフォルダの下にあるべきです。また、ファイルのアップロード中に送信しているヘッダーも確認してください。

また、ファイルと一緒に渡す必要のある承認IDがあるかどうかを確認してください。 これらのうちの1つは、問題を解決するのに役立ちます。

+0

お返事ありがとうございます。テストスクリプトレコーダーの実行中にこのcurlコマンドを入力するだけで、このエラーが発生します。私は72kラインファイル全体がボディデータタブにロードされていることが関係していると信じています。これはメモリを過負荷にしています。これを修正する方法はありますか? – Samasambo

+0

私はカールコマンド部分を理解できませんでしたか?どのように録音しているのか説明できますか? httpサンプラーでjsonファイルを添付ファイルとして送信することができます。 –

関連する問題