Performance Test Report
Performance Test Report
For
OpenCRM
Submitted By:
Softsmith Infotech.
About The Application:
OpenCRM is a Open Source CRM software ideal for small and medium businesses for
managing leads, accounts and other marketing related activities
Scenario:
To Test the application for 10 concurrent users. Here all the 10 users will login to the
application and add a business lead and logout. The test was conducted to test the
influence of users on the application’s performance (mainly response time).
Following all the Activates done to execute the above performance test scenario:
1) Neo Load was used to generate the test script and execute the performance test.
2) A test script was created to Login as sales man à Open the Leads page à Open
the add leads Form à Save a lead à Logout.
3) All the dynamic server parameters and session values were correlated
4) In order to enable multiple users access the system, 10 users were created and
there user names and password were parameterized using a data sheet.
5) All the Data required to create a lead were passed through another data sheet. This
is mimic a real user work load ( different sales man creating different leads)
6) The Script was verified by running the test with one user.
7) Then a workload profile was created to test the system with multiple users. The
following will describe the work load.
The consecutive sections will describe the performance test results in detail.
Generic Performance test counters:
The following graph will show the response time against the number of users. The below
graph is for complete scenarios. This graph gives the average page response time against
the user influence for the entire scenario.
Observations:
The above graph shows that response time steeply increases as the numbers of users
increase. It’s a common phenomenon that the response time will go up as the number users
increase, but the increase should be very minimal. Here we see that its increasing steeply
and it’s a sure performance issue.
The below graph shows how the login page performed as the number users increased.
Response Time Table
Observations:
As already stated above we have gradually increased the number of users. As you can see
that the response time has been steadily increasing as the number of user’s increases. The
Average response time for Login page is 12.9 Seconds. The huge difference in the
minimum, average and maximum values indicate that the application is not responding
quickly enough as the number of users increases.
The below graph shows how the home page performed as the number users increased.
Response Time Table
As you can see that the response time has been steadily increasing as the number of user’s
increases. The Average response time for Home page is 46.5 Seconds. In the above
graph it’s evident that the response time for 1 user itself is 23.4 seconds which is really
alarming. More over an average response time of 46.5 seconds is not acceptable.
The below graph shows how the leads page performed as the number users increased.
As you can see that the response time has been steadily increasing as the number of
user’s increases. The Average response time for Leads page is 26.7 Seconds. The huge
difference in the minimum, average and maximum values indicate that the application is
not responding quickly enough as the number of users increases. More over an average
response time of 26.7 seconds is not acceptable.
User Influence graph for the Add leads From Transaction:
The below graph shows how the Add leads from performed as the number users increase.
As you can see that the response time has been steadily increasing as the number of user’s
increases. The Average response time for Add Leads form is 21.3 Seconds. The huge
difference in the minimum, average and maximum values indicate that the application is
not responding quickly enough as the number of users increases.
As you can see that the response time has been steadily increasing as the number of user’s
increases. The Average response time for Leads page is 35.4 Seconds. The huge
difference in the minimum, average and maximum values indicate that the application is
not responding quickly enough as the number of users increases. More over an average
response time of 35.4 seconds is not acceptable.
Below five is the table of page elements which took maximum time for downloading or
executing.
Note:
Fine tuning these elements will improve the performance of the application.
The below graph will show the resource utilization at the server side as the load test was
being performed.
120
100
% Values
80
CPU Usage(%)
60
Committed Bites(%)
40
20
0
0.00 5.00 10.00 15.00 20.00 25.00 30.00 35.00 40.00
Elapsed Time
Observations:
As you can see that the CPU and Memory are fully used all the time. This could be a
problem for increasing response time. Increasing the hardware configuration of the server
could fix this issue.
Available Memory:
Elapsed Time
600
Memory in MB
500
400
300 Elapsed Time
200
100
0
0.00 5.00 10.00 15.00 20.00 25.00 30.00 35.00 40.00
Elpsed Time
Observations:
The available memory has gradually come down and not increased after the load least and
is an indication of memory loss. More about this can be found my using a probing client.
Observation
As we run the test for longer duration the free heap is decreasing. This is because of low
heap size allocated at the server side.
Overall Observations and suggestions:
1) The average response time increases as the number of users increase. This means that
the application’s performance degrades as the number of users increase. The system
cannot handle more users
2) The CPU and Memory are full at the server side during the load test. This is an
indication that the existing
3) The JVM heap size at the server is very less. Increasing the JVM heap size at the server
side will improve the performance of the application.
4) Fine tuning the Page elements specified in “Page Elements Response time” can be
helpful in improving the performance of the application.
5) Try setting the connector attribute setting – “compression to on”. This might improve
the performance.
6) Tune the Connector (web server) thread pool settings to more closely match the web
request load you have. This is difficult to do, but is very important to get right for best
performance. The important Connector attribute for this is maxThreads. Setting this too
low means that you may not have enough threads to handle all of the requests, in which
case requests have to sit idle for some time without being handled until another request
thread is freed up