Performance Testing On A Web Application Computer Science Essay

Published:

The aim of this project is carry out performance testing on a web application and deliver the performance verification report. The concept of performance testing is new to me and I learned it in detail before proceeding to carry out the performance testing. The performance of the application is one of the important requirements considered to be used by the customers.

I have taken a web application, warehouse management application developed by one of the senior and studied the application and implemented in the test machine. The application is studied in detail and identified the business test cases in the application.

For all the test cases test scripts were developed using the performance test tool JMETER. The tests are executed with increasing user groups. With the available hardware configuration in the test system, I had formulated four different hardware configurations using which the tests should be executed to check the performance of the application with regard to the hardware resources.

Lady using a tablet
Lady using a tablet

Professional

Essay Writers

Lady Using Tablet

Get your grade
or your money back

using our Essay Writing Service!

Essay Writing Service

 Finally the mix profile is created and the tests are executed with the mix profile in configuration4.

Document Structure

Chapter 1 Introduction

This chapter provides introduction to this project. This chapter also gives the aims and objectives of the project.

Chapter2 Literature Review

A detailed information of performance testing and its process and the types are discusses in this chapter. This chapter also discusses the performance test tool used in this project.

Chapter 3 Test System Configuration

This Chapter gives the details of the hardware configuration of the test system. This chapter also discusses the implementation of the test web application.

Chapter 4 Performance Requirements & Test Cases

This chapter gives the test cases selected in the web application for doing the performance testing.

Chapter 5 Test Case# User Navigation Execution

This chapter discusses the execution details of the user navigation test case

Chapter 6 Test Case# Inbound Orders Execution

This chapter discusses the execution details of the inbound orders test case

Chapter 7 Test Case# Outbound Orders Execution

This chapter discusses the execution details of the outbound orders test case

Chapter 8 Mix Profile Execution

This chapter explains the mix profile, and provides the mix profile execution details.

Chapter 9 Conclusion

This chapter provides concluding lines to this project.

Chapter 10 References

All the references made during this project are included in this chapter.

Introduction

The performance testing is not the kind of testing carried to investigate the bugs in the application; instead it is conducted to find the bottlenecks in the application which affect the performance of the application. The performance can stated as how the application is performing when the multiple users are working on the same application. Performance testing can be defined as developing the tests and their execution to evaluate the performance-related characteristics of the application like timing profiles, execution flow, response times, and operational reliability and limits [1].

Performance testing can also be defined as a process to evaluate the responsiveness, throughput, reliability, and/or scalability of an application when a specified workload is acting on the application [2].

This is an introductory chapter which gives the background information to the project. This chapter also describes the aim and objectives of this project.

Background

Initially all the computer applications were standalone applications were standalone; the applications are installed in the same computer and are accessed from the same machine. Normally one user will be working on these types of applications and complete system hardware is dedicated to carry out requests of the same user.

With the invention of the internet, the client server applications started replacing the standalone applications. Initially the client server applications were just normal information providers, where the server is used to provide the information requested by the client. There is not much server processing is required and the applications used to act fast as the numbers using the application were minimum.

There will not be much difficulty for the users in terms of performance, as the users using the application were minimum. But with the increase in the technology all the companies are using online applications for their business. When more number of users is using the application, if the application is not properly designed to work under load, then the users will be facing performance related problems. The performance related issues will be affecting the business of the organization.

Lady using a tablet
Lady using a tablet

Comprehensive

Writing Services

Lady Using Tablet

Plagiarism-free
Always on Time

Marked to Standard

Order Now

Now we will study two different scenarios how the performance of the application plays with the business of the organizations. First, consider a internet application which delivers goods when customers places orders through internet. If the application performance is poor and users feel they are waiting longer times for getting responses, then the users may not feel to book the orders next time and it will carry negative feedback which impacts the business of the organization.

The second types of applications are the companies implementing their private applications. If the applications are performing slow then the business and activities of the organization gets slower. This in turn impacts the business of the organization.

The above scenarios can suggest that the performance testing of the application is very important. The technical design should be proper in order to make the performance of the application better. The hardware configurations and network bandwidth are also important as they impact the performance of the application.

The performance testing is an important discipline in the field of software. As part of this project I would be learning more in the area of the performance testing and carry out a performance testing on a test web application.

Aim

The aim of this project is to study concept of the performance testing and to carry out the performance testing of the application.

Objectives

Study and Learn the process of performance testing

The performance testing is a series of activities should be carried out. As part of this project the performance testing should be learned in depth.

Learn the performance test tool JMETER, develop and execute scripts

The performance testing in this project is done with the help of the test tool JMETER. Developing the scripts using the test tool should be learned as part of this project. All the test scripts should be deloped and executed using the test tool JMETER.

Create a mix profile and execute tests with mix profile

By considering the maximum number of users each test case is supporting in all the configurations, a mix profile is created which means number of users working in different test cases individually. The mix profile is executed and the results were analyzed.

Literature Review

This chapter gives the details of the learning's I made as part of this project. This chapter discusses in details about the performance testing and its types. Then a detailed explanation is given on process of performance testing. Then I tried to explain the performance test tool I used in this project. Finally I gave explanation about the execution approach implemented in this project.

Performance Testing

Types of Performance Testing

Process Of performance Testing

Performance Test Tool - JMETER

Windows Performance Monitor

Execution Approach

In this project I had followed the following process for carrying out the performance testing of the application. This is done with regard to each test case identified in the application.

Test System Configuration

The first and foremost step before carrying out performance testing is configuring the test system in which the performance testing should be carried out. As part of the test system configuration the performance test engineer should take care of hardware configuration of the test system, installing the test web application, and implementation of the test tool. The test tool selected is JMETER and its explanation is provided in the previous chapter. This chapter will be having two parts; the first part will be giving the test system hardware configuration details. The second part will brief about the test web application and its implementation details.

Hardware Configuration

This section of the chapter explains the details of the hardware configuration of the test system. The test machine is having 2GB RAM and 2 processors. With this available configuration the various possible tests should be carried and should provide the performance report of the test web application.

Initially the performance testing will be carried out to check the application performance with increase in hardware resources and observe how the application performance behaves with increase in the hardware resources. With the present hardware configurations I had formulated four different hardware configurations using which the performance testing should be carried out.

Lady using a tablet
Lady using a tablet

This Essay is

a Student's Work

Lady Using Tablet

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

Examples of our work

The configurations should be formulated in such a way that at a time only one hardware parameter should be changed when moving from one hardware configuration to another. The change of one parameter can give better analysis of the performance results. The Four configurations prepared with the possible hardware configuration are

Test Configuration1: 1 Processor and 512 MB

With increase of RAM by 512MB

Test Configuration2: 1 Processor and 1GB

With increase of RAM by 1GB

Test Configuration3: 1 Processor and 2GB

With increase of one processor

Test Configuration4: 2 Processors and 2GB

When observed in the above configurations, only one hardware parameter is changed at a time, with configuration 1 to 2 only the RAM is increased by 512MB. From configuration 3 to 4 processors are increased by1. This process is followed to check how the performance of the application is behaving with increase in the hardware resources.

The increase in the hardware resources doesn't mean physical addition of the resources. The resources will be present in the system but can be altered in the system configurations. These parameters can be altered in boot.ini file which can be attained when user types c:\boot.ini in run command.

Application under Test

This section of the chapter gives a brief description of test application whose performance testing I will be measuring as part of this project. I have taken a web application named warehouse management system which was developed by one of our senior for this project to carry out the performance testing.

Application Description

Warehouse management system is a web application which manages the information of goods and operations of the warehouse. This application provides the functionality of placing inbound orders for getting goods in to ware house and outbound orders from moving out goods. The application also provides rich set of functionality for managing the goods in a warehouse. This application is developed in jsp and is a client server application. Client can be any browser and server used in this project should Apache Tomcat.

Application Implementation

The application needs minimum of the following software requirements.

Database Server: MySQL 5.1

Web Server: Apache Tomcat 6.0

Java: jdk 1.6.0

As part of this application implementation I have installed database server and created a DB WMSDB. Then I created all the tables required for this application. Next is installing tomcat server and deploying the application. This is done with respect to the implementation steps provided with product installation.

Performance Requirements & Test Cases

The next step after configuring the test system is identifying the business scenarios also known as test cases and setting the performance requirements. These requirements can be treated as acceptance criteria and when the performance of the application matches with the acceptance criteria then the application performance testing is successful. This chapter contains two sub sections; the first section will give the details of the test cases. And the second section will cover the performance requirements

Test Cases

By looking into the functionality and the users using the application, I identified the below three business areas in the application which are critical. In this section I will list the test cases I selected in the application for which I will be preparing the scripts and execute using the test tool. The three important business areas include inbound orders creation, outbound orders creation, and other operations in the warehouse which includes the user navigations to check various data like item balances and other data.

Test Case#1 User Navigations

This test case will have all the actions of user clicking on the various navigation links like warehouses, locations, items, item balances, and others. Normally the users in the warehouse will be looking into this data when they are taking count of the items which are present in the warehouse, and before placing inbound and outbound orders. The below are the actions of this test case after opening the application.

Step1. Login to the warehouse management application

Step2. Click on the users' link to display the users list.

Step3. Click on the warehouses link to display the warehouses list.

Step4. Click on the locations link to display the locations list.

Step5. Click on the items link to display the items list.

Step6. Click on the item balances link to display the item balances.

Step7. Click on the cycle counts link to display the cycle counts.

Step8. Logout From the application

The above will be user actions on the application as part of the user navigation. When we create the script with the test tool it will be creating its own actions. We should remove some of the unwanted actions like downloading the style sheets. The below are the important transactions in this test for which the response time should be noted down.

Open Main Page

Login validation

Users List

Warehouses List

Locations List

Items List

Item Balances

Cycle counts

Test Case#2 Inbound Order Creation

This test case will have the steps to create a new inbound order, which places order to the supplier to add stock to the warehouse. The below are the user actions in this test case.

Step1. Login to the warehouse management application

Step2. Click on inbound order link to display the inbound orders list.

Step3. Click on new inbound order link to display the page to add new inbound order.

Step4. Add the details of inbound order and click on submit.

Step5. Logout

The above will be user actions on the application as part of the inbound order creation. The below are the important transactions in this test for which the response time should be noted down.

Main Page

Login validation

Inbound Orders List

New Inbound order

Add Inbound Order

Test Case#3 Outbound Order Creation

This test case will have the steps to create a new outbound order, which places order to move the goods from the warehouse to the customer. The below are the actions in this test case.

Step1. Login to the warehouse management application

Step2. Click on outbound order link to display the outbound orders list.

Step3. Click on new outbound order link to display the page to add new outbound order.

Step4. Add the details of outbound order and click on submit.

Step5. Logout

The below are the important transactions in this test for which the response time should be noted down.

Main Page

Login validation

Outbound Orders List

New Outbound order

Add Outbound Order

Performance Requirements

The previous section lists all the test cases in the application. The requirements of this performance testing are discussed in this chapter.

The test cases should be executed with increasing user set of 25 in all the configurations and note down the response times and through put.

The hardware resource utilization values should be recorded for all the test cases execution.

Prepare the tables and graphs where ever required for better analysis.

Find out the maximum number of users the system supporting for each test case.

Prepare the mix profile and execute the mix profile test cases.

The response time of 5 seconds is acceptable for all the transactions. The transactions with more response time are noted down and treated as very late transactions and special investigation needs to be done on them.

Test Case# User Navigation Execution

This chapter provides the complete details of the execution of user navigation test case. The functional steps of this test case are provided in the previous chapter. The execution approach of the test case is provided in the second chapter. For each configuration two tables are provided, the first table gives the response time and through put, and the second table gives the hardware resources utilization. The graphs are also provided to show the throughputs of different executions with various user counts.

Test Configuration1

According to this configuration the server will have 512 MB RAM and one processor. The users were increased with a count of 25 in each test run and halted where the errors are coming. For this configuration first errors were sighted with the user count of 100. Then the test was executed with user count of 90 and test execution is passed. The response times and through put values of the transactions in this test case are provided in the below table. Response times are provided in seconds and through put are provided in KB/Sec. The hardware resources utilizations for various user sets when the user navigation test is executed are given in table2.

Table 1: User Navigation Response Times & Through Put in Configuration1

Users

1

25

50

75

90

100

Transactions

(Secs)

Main Page

0.01

0.01

0.3

0.3

0.6

1.3

Login validation

0.1

0.3

0.7

0.7

1.2

2

Users List

0.05

0.2

0.8

0.9

1.3

2.3

Warehouses List

0.06

0.2

0.9

0.9

1.3

2.1

Locations List

0.05

0.2

0.6

0.7

1.4

2.3

Items List

0.05

0.2

0.8

0.9

1.3

2.1

Item Balances

0.05

0.3

0.8

0.9

1.3

2.3

Cycle counts

0.06

0.2

0.8

0.8

1.4

2.3

Through put (KB/Sec)

102

237

269

287

312

177

The through put increases with increase in the number of users and found a great fall in the throughput when the user count is 100. The below graph shows the throughput for various user sets in this configuration.

Graph1: Throughput Vs Number Of users in Configuration1

Hardware resources utilizations like processor time, available memory and the processer spending time in each process are presented in the below table.

Table 2: User Navigation Hardware resources Utilization in Configuration1

Users

1

25

50

75

90

100

Processer Time

7

18

25

40

76

97

Available Memory

77

68

60

42

21

39

Process - tomcat

1

7

9

11

13

7

Process - MySQL

1

4

6

6

8

3

Process -java

3

6

6

18

52

84

For Configuration1, the test with user set 100 gave the errors and the test was again executed with 90. The test with users 90 was running successful, confirming the application support 90 users with configuration1.The processor time and available memory in Mbytes, for various user groups for this test execution in configuration1 are shown in below graph.

Graph2: Processor Time and available memory in Configuration1

Test Configuration2

With this configuration the RAM will be increased by 512MB making it to 1GB RAM and one processor. The execution was carried out with the user groups increasing by 25. The execution in this configuration is similar to that of configuration1. The test with user count 100 gave errors and the execution with user set 90 was successful. The response times and through put for different executions of this test case in this configuration are provided in the below table.

Table 3: User Navigation Response Times & Through Put in Configuration2

Users

1

25

50

75

90

100

Transactions(Secs)

Main Page

0.01

0.01

0.3

0.3

0.6

1.3

Login validation

0.1

0.3

0.7

0.7

1.2

2

Users List

0.05

0.2

0.8

0.9

1.4

3.4

Warehouses List

0.06

0.2

0.9

0.9

1.3

2.3

Locations List

0.05

0.2

0.6

0.8

1.6

2.7

Items List

0.05

0.2

0.8

0.9

1.8

2.9

Item Balances

0.05

0.3

0.8

0.9

1.7

3.1

Cycle counts

0.06

0.2

0.8

0.8

1.5

2.7

Through put (KB/Sec)

97

215

271

294

308

168

The through put increases with increase in the number of users and found a great fall in the throughput when the user count is 100; this is very much similar to that of execution configuration1. The below graph shows the throughput for various user sets in this configuration.

Graph3: Throughput Vs Number Of users in Configuration2

Hardware resources utilizations are collected from the performance log files and are presented in the below table for the executions in this configuration. When observed the processor time busy in execution is similar to the above execution. There is a increase in available memory as we increased in the RAM size. The performance of the application didn't improve much by increasing the RAM from 512MB to 1 GB. To confirm that increase in RAM with one processor may not increase performance need to again test with increasing RAM to 2GB.

Table 4: User Navigation Hardware resources Utilization in Configuration2

Users

1

25

50

75

90

100

Processer Time

6

30

38

44

81

98

Available Memory

289

269

191

42

31

12

Process - tomcat

1

12

15

11

15

11

Process - MySQL

1

6

9

10

14

12

Process -java

3

10

11

18

51

75

Available memory, and the processor time for the executions in configuration2 are provided in the below graph.

Graph4: Processor Time and available memory in Configuration2

Test Configuration3

With increase in the RAM from 512MB to 1 GB there was no improvement in the performance of the application. The next configuration will have a total of 2 GB RAM, by adding an additional 1 GB RAM to the existing one. There is a slight improvement in the performance of the application the test run with user count 100 executed without errors. This configuration3 is supporting 100 users with increase of 10 users from the previous configuration.

The response times and through put of the various test executions in configuration3 are provided in the below table. The response times of the transactions with user count 100 are reduced a lot when compared to the previous configuration response times. The test run with 110 users gave errors and I ignored the test run.

Table 5: User Navigation Response Times & Through Put in Configuration3

Users

1

25

50

75

100

Transactions

Main Page

0.1

0.1

0.1

0.3

0.7

Login validation

1.2

0.7

0.8

0.9

1.1

Users List

0.01

0.3

0.6

0.7

1.2

Warehouses List

0.06

0.3

0.6

0.9

1.3

Locations List

0.05

0.4

0.5

0.8

1.2

Items List

0.04

0.3

0.6

0.7

1.4

Item Balances

0.03

0.4

0.6

0.9

1.3

Cycle counts

0.04

0.4

0.5

0.8

1.5

Through put

76

246

276

295

304

The through put for various executions of different user groups are shown in the below graph. The through put increases with increase in the number of users.

Graph5: Throughput Vs Number Of users in Configuration3

There is lot of available memory left when executing with users 100. The processor is complete busy and confirming that there needs to be any addition of processor to increase the memory. The addition of memory further will not improve any performance. The hardware resource utilization measures are presented in the below table.

The available memory and the processor time readings for this configuration execution were presented in the below graph for better analysis.

Table 6: User Navigation Hardware resources Utilization in Configuration3

Users

1

25

50

75

100

Processer Time

5

26

33

48

95

Available Memory

1246

1158

1069

978

916

Process - tomcat

1

7

10

11

17

Process - MySQL

1

8

7

9

11

Process -java

2

7

12

22

61

Graph6: Processor Time and available memory in Configuration3

Test Configuration4

IN the above configuration we can see that there is lot of available memory left confirming that additional RAM may not improve performance. The other alternative to improve performance is to add additional processor. In this configuration the processor count is increased from 1 to 2. This configuration supports a maximum of 115 users. Below table contain the response times for the various transactions and through put values.

Table 7: User Navigation Response Times & Through Put in Configuration4

Users

1

25

50

75

100

115

125

Transactions

Main Page

0.1

0.1

0.1

0.4

0.7

1.1

1.7

Login validation

0.1

0.2

0.3

0.6

1.2

1.4

3.1

Users List

0.01

0.2

0.4

0.6

0.9

1.2

3.7

Warehouses List

0.01

0.2

0.3

0.7

0.8

1.1

2.9

Locations List

0.01

0.1

0.3

0.6

0.9

1.3

2.7

Items List

0.01

0.2

0.3

0.7

0.7

1.2

2.1

Item Balances

0.02

0.2

0.4

0.6

0.8

1.1

3.7

Cycle counts

0.01

0.2

0.3

0.5

0.9

1.4

3.5

Through put

95

329

331

337

362

392

358

The through put of various test executions are presented in the below graph. There is a reduction of through put when the users are 125, as the test execution has errors during execution.

Graph7: Throughput Vs Number Of users in Configuration4

The processor is utilized completely. Here the processor time is given for 200%. The processor time for n number of processors will be counted as (processors num * 100). The performance of the application can be improved if we add more processors to it. As there is limitation in the hardware resources I am limiting my execution to here. The below table and the graph gives the hardware utilization measures.

Table 8: User Navigation Hardware resources Utilization in Configuration4

Users

1

25

50

75

100

115

125

Processer Time

8

31

52

98

160

196

197

Available Memory

1242

1172

1121

1040

1000

964

1045

Process - tomcat

1

9

13

19

31

42

36

Process - MySQL

1

4

6

10

12

17

14

Process -java

2

14

26

63

105

133

142

Graph8: Processor Time and available memory in Configuration4

The below graph shows the number of users supporting with different configurations. The configuration1 supports a user group of 90 and a maximum of 115 users are supported with configuration4.

Graph9: Number of users supported with different configurations.

The different executions were carried out to understand the execution behavior with different hardware configurations. The trough put increases with increase in the number of users and the response times are reduced with increase in the hardware configuration.

Test Case# Inbound Orders Execution

This chapter will give the execution details of the test case inbound orders. Similar to the above test case this test also is executed in the four test configurations. The users will be increasing with a count of 100. All the values collected during the execution will be presented in the tables. For the better analysis of the results graphs are also produced for the test configuration.

Test Configuration1

This test configuration has 512MB and one processor. The test execution with users 100 gave errors during execution. The test execution with 90 went fine without any errors. This configuration supports 90 users for this test case similar to the above test case. The response times and through put are shown in the below table.

Table 9: Inbound Orders Response Times & Through Put in Configuration1

Users

1

25

50

75

90

100

Transactions

Main Page

0.01

0.01

0.1

0.6

0.7

1

Login validation

0.05

0.2

0.6

1.5

1.8

1.7

Inbound Orders List

0.02

0.2

0.6

1.6

1.7

2

New Inbound order

0.01

0.3

0.7

1.7

2.2

2.1

Add Inbound Order

0.04

0.7

1.2

2.5

3

3.7

Through put

105

187

231

267

314

124

The through put for various test executions are presented in the below graph. The through put increases with increase in the number of users.

Graph10: Throughput Vs Number Of users in Configuration1

Hardware resources utilizations for this test case in configuration1 are presented in the below table.

Table 10: Inbound Orders Hardware resources Utilization in Configuration1

Users

1

25

50

75

90

100

Processer Time

4

29

46

84

92

100

Available Memory

113

107

61

43

44

36

Process - tomcat

-

7

11

17

19

21

Process - MySQL

-

5

6

13

16

19

Process -java

1

7

24

51

52

54

The below graph shows the various hardware resources values for configuration1 of inbound orders test case.

Graph11: Processor Time and available memory in Configuration1

Test Configuration2

This configuration is having 1GB and 1 processor. This configuration supports the same number of supported in the previous configuration. The values of different test executions in this configuration are listed in the below table and graph.

Table 11: Inbound Orders Response Times & Through Put in Configuration2

Users

1

25

50

75

90

100

Transactions

Main Page

0.01

0.01

0.1

0.6

0.7

1

Login validation

0.05

0.2

0.7

1.3

1.5

1.9

Inbound Orders List

0.02

0.3

0.6

1.4

1.5

2.3

New Inbound order

0.01

0.3

0.8

1.6

2.2

2.2

Add Inbound Order

0.03

0.8

1.2

2.2

2.8

3.6

Through put

101

257

271

304

319

297

Graph12: Throughput Vs Number Of users in Configuration2

The hardware resources utilization measures were collected and presented in the below table. The available memory and the processor time for different test executions of different user sets are provided in the next graph.

Table 12: Inbound Orders Hardware resources Utilization in Configuration2

Users

1

25

50

75

90

100

Processer Time

6

39

65

74

87

100

Available Memory

329

242

141

97

67

37

Process - tomcat

1

8

21

24

25

29

Process - MySQL

1

4

14

11

11

10

Process -java

1

8

26

35

44

54

Graph13: Processor Time and available memory in Configuration1

Test Configuration3

This configuration will have 2 GB RAM and one processor. This configuration also supports same number of users supported in the previous configurations. The addition of RAM is not improving any performance. The response times and through put values are presented in the below table.

Table 13: Inbound Orders Response Times & Through Put in Configuration3

Users

1

25

50

75

90

100

Transactions

Main Page

0.01

0.01

0.1

0.5

0.7

0.9

Login validation

0.05

0.2

0.6

1.2

1.4

1.7

Inbound Orders List

0.02

0.4

0.7

1.2

1.6

2.1

New Inbound order

0.01

0.1

0.6

1.4

2.1

2.2

Add Inbound Order

0.04

0.7

1.1

2.1

2.6

3.2

Through put

97

249

267

297

316

161

The through put values are presented in the below graph.

Graph14: Throughput Vs Number Of users in Configuration3

The hardware utilization resources values are presented in the below table.

Table 14: Inbound Orders Hardware resources Utilization in Configuration3

Users

1

25

50

75

90

100

Processer Time

7

29

63

95

99

100

Available Memory

1220

1135

1093

1061

1087

907

Process - tomcat

1

10

18

29

31

32

Process - MySQL

1

5

9

14

15

16

Process -java

1

10

33

47

49

45

Graph15: Processor Time and available memory in Configuration1

Test Configuration4

This configuration is having 2 processors and 2 GB RAM. This configuration supports 125 users. The through put of the test execution increased with increase in the number of users. The response times of the transactions are within the accepted criteria. The response times and through put values for the test execution in this configuration are listed in the below table.

Table 15: Inbound Orders Response Times & Through Put in Configuration4

Users

1

25

50

75

100

125

Transactions

Main Page

0.01

0.01

0.1

0.4

0.6

1.2

Login validation

0.6

0.1

0.4

0.6

1.0

2.1

Inbound Orders List

0.04

0.2

0.4

0.6

1.1

1.9

New Inbound order

0.05

0.07

0.3

0.7

1.1

2.1

Add Inbound Order

0.1

0.4

0.7

0.9

1.1

2.4

Through put

104

384

398

414

423

419

Graph16: Throughput Vs Number Of users in Configuration4

The hardware utilization values for the test execution in this configuration are presented in the below table. The processor time and the available memory for different user groups are presented in the below graph.

Table 16: Inbound Orders Hardware resources Utilization in Configuration4

Users

1

25

50

75

100

125

Processer Time

7

35

94

112

160

191

Available Memory

1244

1186

1122

1016

982

973

Process - tomcat

1

12

26

29

31

37

Process - MySQL

1

6

14

12

13

14

Process -java

1

16

48

67

115

126

Graph17: Processor Time and available memory in Configuration1

The inbound orders test execution with configuration1 supports a user group of 90 and a maximum of 125 users are supported with configuration4. The number of users supported for different configurations are shown in the below graph.

Graph18: Number of users supported with different configurations.

Test Case# Outbound Orders Execution

This chapter will give the execution details of the test case outbound orders. This test case is also executed with four possible configurations. The results are provided in tables and graphs.

Test Configuration1

This configuration has 512MB and 1 processor. This configuration supports 90 users for this test case. The test execution with 100 users gave errors during execution. The below table shows the response time and through put values for the test executions in this configuration.

Table 17: Outbound Orders Response Times & Through Put in Configuration1

Users

1

25

50

75

90

100

Transactions

Main Page

0.01

0.01

0.1

0.6

0.9

1

Login validation

0.05

0.2

0.6

1.5

1.6

1.8

Outbound Orders List

0.02

0.3

0.6

1.6

1.7

2.1

New Outbound order

0.01

0.3

0.7

1.7

1.8

2.3

Add Outbound Order

0.04

0.7

1.0

2.4

2.6

3.2

Through put

97

260

293

301

317

292

The below graph is prepared with through puts for various test executions of different user groups.

Graph19: Throughput Vs Number Of users in Configuration1

The hardware resources values which are utilized during the execution of tests are provided in the below table and graph.

Table 18: Outbound Orders Hardware resources Utilization in Configuration1

Users

1

25

50

75

90

100

Processer Time

5

45

92

96

99

100

Available Memory

75

66

66

47

49

48

Process - tomcat

1

14

28

26

13

12

Process - MySQL

1

9

16

14

11

9

Process -java

1

17

43

51

74

77

Graph20: Processor Time and available memory in Configuration1

Test Configuration2

The response times and through put values of different test execution in this configuration are provided in the below table. This configuration also supports 90 users.

Table 19: Outbound Orders Response Times & Through Put in Configuration1

Users

1

25

50

75

90

100

Transactions

Main Page

0.01

0.01

0.2

0.5

0.9

1.1

Login validation

0.05

0.2

0.6

1.1

1.6

2.4

Outbound Orders List

0.02

0.3

0.6

1.2

1.7

2.4

New Outbound order

0.01

0.3

0.6

1.3

1.8

2.7

Add Outbound Order

0.04

0.8

1.0

1.9

2.6

2.8

Through put

89

271

296

304

319

287

Graph21: Throughput Vs Number Of users in Configuration2

The hardware resources values are presented in the below table and graph

Table 20: Outbound Orders Hardware resources Utilization in Configuration2

Users

1

25

50

75

90

100

Processer Time

5

22

53

63

97

100

Available Memory

282

245

187

140

55

78

Process - tomcat

1

7

16

17

25

27

Process - MySQL

1

3

9

6

11

12

Process -java

1

7

23

32

56

58

Graph22: Processor Time and available memory in Configuration2

Test Configuration3

In this configuration the tests are executed with 2 GB RAM and one processor. This configuration supports 90 users. The response time and through puts are shown in the below table and graph.

Table 21: Outbound Orders Response Times & Through Put in Configuration3

Users

1

25

50

75

90

100

Transactions

Main Page

0.01

0.01

0.1

0.5

0.9

1

Login validation

0.06

0.2

0.3

1.1

1.6

1.8

Outbound Orders List

0.02

0.3

0.3

1.1

1.6

1.9

New Outbound order

0.01

0.4

0.5

1.2

1.6

1.9

Add Outbound Order

0.02

0.6

1.0

1.6

2.1

2.7

Through put

95

281

293

301

304

293

Graph23: Throughput Vs Number Of users in Configuration3

The hardware utilization resources values are provided in the below table and graph.

Table 22: Outbound Orders Hardware resources Utilization in Configuration3

Users

1

25

50

75

90

100

Processer Time

6

23

64

77

94

100

Available Memory

1242

1210

1155

1053

942

991

Process - tomcat

1

7

21

22

27

31

Process - MySQL

-

4

11

10

11

10

Process -java

1

8

27

40

52

58

Graph24: Processor Time and available memory in Configuration3

Test Configuration4

In this configuration the processers will be increased to 2 by adding one more processor. This configuration supports 125 users. The below table and graph displays the response time and through put.

Table 23: Outbound Orders Response Times & Through Put in Configuration4

Users

1

25

50

75

100

125

Transactions

Main Page

0.01

0.01

0.1

0.4

0.4

0.5

Login validation

0.06

0.2

0.4

0.6

0.6

0.8

Outbound Orders List

0.02

0.2

0.4

0.6

0.6

0.7

New Outbound order

0.01

0.2

0.3

0.7

0.9

1.2

Add Outbound Order

0.03

0.5

0.8

0.9

1.2

1.6

Through put

98

267

326

343

361

372

Graph24: Throughput Vs Number Of users in Configuration4

The hardware resources utilization values are provided in the below table and graph

Table 24: Outbound Orders Hardware resources Utilization in Configuration4

Users

1

25

50

75

100

125

Processer Time

5

78

127

138

163

194

Available Memory

1245

1196

1151

1123

1080

982

Process - tomcat

1

15

40

35

49

53

Process - MySQL

1

11

23

21

25

29

Process -java

1

25

56

68

89

106

Graph25: Processor Time and available memory in Configuration4

For this test case configuration1 supports 90 users. And the configuration4 supports a maximum of 125 users. This is similar to the outbound orders test. The below graph provides the number of users supported with each configuration.

Mix Profile Execution

The previous chapters provide the details of individual test cases. In a real time environment the users use all the business areas of the application. For this we should simulate and execute all the business cases at the same time. For this we should prepare mix profile of various users to work on different business scenarios. When looked into the number of users supported for each test case, all the test cases support more than 100 users.

For mix profile I considered 100 users and below is the user profile for different test cases.

User Navigation Test Case - 50 users

Inbound Orders Test Case - 25 users

Outbound Orders Test Case - 25 Users

The test cases with the above specified user groups will be executed simultaneously in configuration4. For the mix profile execution, the below are the response times of all the transactions

Main Page

0.4

Login validation

0.8

Users List

0.6

Warehouses List

0.7

Locations List

0.3

Items List

0.4

Item Balances

0.5

Cycle counts

0.6

Inbound Orders List

0.5

New Inbound order

0.4

Add Inbound Order

0.7

Outbound Orders List

0.5

New Outbound order

0.4

Add Outbound Order

0.6

The hardware resources utilization were given in the below table when mix profile test cases are executed.

Users

100

Processer Time

191

Available Memory

802

Process - tomcat

47

Process - MySQL

34

Process -java

106

The application is certified to support 100 users with the specified hardware configuration.

Conclusion

I studied process of performance testing with regard to this project and now I am comfortable with the concepts I learned in course of this project. I have used the performance test tool JMETER for simulating the load on the application server. I learned in detail about this tool and now can carry performance testing using this tool on any application.

In this project I had selected the important business scenarios in the application and made a list of steps in the test cases. Then the test scripts were created using the test tool JMETER the test cases were executed with all the configurations with increasing in user counts. The results were formulated and results were analyzed. Mix profile of different user groups is also prepared and the test cases are executed with the mix profile. As part of the results, response times for all the transactions, throughput, and the hardware utilizations of the server are made into the tabular form. The graphs are also prepared wherever required for the better view of the results.

Future Work

In this project I had done performance testing on the web application and prepared the metrics. As a future work I would like to carry the below activities

In this project I had implemented the web application in a system having the lower configuration, in future I would like to carry out with higher configuration and prepare scaling guide, which provide the information of hardware resources required for number of users. This can be helpful when there is increase in user count, how the hardware resources should be increased.

In this project there is only one web server, in the next work I would like to implement more than one server to distribute the load between the servers which is known as load balancing.