1
votes

I'm using JMeter to test a Java application written by a 3rd party vendor using Versata Logic Studio.

I've got some steps in my test plan that submit a request using some post data and then receive a response back:

Response too large to be displayed. Size: 445817 > Max: 204800, Start of message:
{"header":{"action":"300","arguments":{"tabid":"Header","divid":"ActgDisb,Vendor,BusinessType...ETC

This seems fine (I'm guessing that's 400K?), except that the step is taking far longer than it does to click through the pages in a browser. In the browser it takes 5 seconds at most. In JMeter it's taking 2 minutes. The CPU is also at 60% for just one thread during these steps.

Any ideas on speeding this up? We're struggling to get enough slaves going and this certainly isn't helping.

3

3 Answers

2
votes

The message that is displayed tells that you are using View Result Tree during your load test. Jmeter sets a limit that can be changed on the size of pages displayed in this component by adding to user.properties file:

  • view.results.tree.max_size which defaults to 200 ko

BUT during a load test never ever use this component as it requires a lot of resources (memory and cpu). This component must only be used during scripting phase.

You can read this article that gives tips on JMeter configuration and tuning:

Disclaimer : I wrote it and it's my company but IMHO I think it's worth reading :-)

Also read this:

2
votes

If your JMeter script is using a lot of file I/O, then putting those files in RAM will significantly improve the speed. You can use any app such as IMDisk (freeware) to create a virtual disk in RAM. Make sure that you have more than 4GB RAM. In our case, we are sending around 8000 small files per user. With 200 users on each system, Jmeter is reading 16 Lack files. This was the bottleneck. With the RAM Disk, the file read speed was increased by 20 times and it helped Jmeter to run at full speed.

1
votes

If you're ready to move to TCP level, there is HTTP Raw Request that allows memory-efficient operation for huge uploads/downloads. Read its manual carefully, there is some JMeter properties for tuning its performance.

However, my experience is that you possibly have a situation where Java itself is a bad technology to perform load tests. I suggest you to take a pair of tries for Raw Request and in case of failure to seek for some C/C++ tool for performance tests.