Hi.

I am trying to verify a large (>500Mb) response from a HTTP request, but 
whenever I run my TestPlan
the thread fails after running out of memory.

I have added a "Save Responses to a file" Listener, but it looks like it is the 
HTTP Request sampler that
fails when handling all the data in memory after the reception completes - see 
error ourput below.

Console window output:
  java.lang.OutOfMemoryError: Java heap space
  Dumping heap to java_pid1912.hprof ...
  Heap dump file created [558234258 bytes in 6.291 secs]

JMeter log file output:
  2012/06/07 14:51:53 ERROR - jmeter.threads.JMeterThread: Test failed! 
java.lang.OutOfMemoryError: Java heap space
        at java.util.Arrays.copyOf(Unknown Source)
        at java.io.ByteArrayOutputStream.toByteArray(Unknown Source)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.readResponse(HTTPSamplerBase.java:1635)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPAbstractImpl.readResponse(HTTPAbstractImpl.java:236)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPJavaImpl.readResponse(HTTPJavaImpl.java:288)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPJavaImpl.sample(HTTPJavaImpl.java:518)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:62)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1060)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1049)
        at 
org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:442)
        at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:271)
        at java.lang.Thread.run(Unknown Source)

I have already increased the heap allocation to its max on my hardware 
(-Xmx1G), but without success. I guess I could
add memory, but since I have to run multiple downloads at the same time, it 
does not look realistic.

I can enable the "Save response as MD5 hash" option and have my TestPlan 
succeed, but then the output file from the
run only contain the MD5 hash and since my response data is somewhat dynamic it 
is of no real use.

I can see that JMeter allows a large file to be uploaded by reading it as 
needed during transmission, so I guess I need
the reverse of this i.e. store the response to a file while receiving it 
without keeping it in memory. I guess something
like having the "Save response as MD5 hash" option dump the data to a file 
after its calculation are done.

Does anybody know how I can do this ?

Thanks in advance,
Carsten.

P.S. I am using the following JMeter:
  2012/06/07 14:20:45 INFO  - jmeter.JMeter: Version 2.7 r1342410 
  2012/06/07 14:20:45 INFO  - jmeter.JMeter: java.version=1.7.0_04 
  2012/06/07 14:20:45 INFO  - jmeter.JMeter: java.vm.name=Java HotSpot(TM) 
Client VM 
  2012/06/07 14:20:45 INFO  - jmeter.JMeter: os.name=Windows 7 
  2012/06/07 14:20:45 INFO  - jmeter.JMeter: os.arch=x86 
  2012/06/07 14:20:45 INFO  - jmeter.JMeter: os.version=6.1 

Reply via email to