Test platform in cloud
Performance testing is done to verify that a system meets the performance criteria; it aids in diagnosing what parts of the system or workload cause the system to perform badly. Traditional testing environment requires a lot of effort and time during set up .This is because it includes procuring the right infrastructure, installing the required software, etc. Cloud computing is one of the most talked about technology in software industry today. Cloud computing allows consumers to use applications without installation and access their files at any computer with internet access. The major goal of cloud computing is to provide easy, scalable access to computing resources and IT services. Cloud based solutions offer new and different possibilities to testing. A cloud-based, test platform can address the challenges a traditional test environment pose, through automated scaling up or down of testing infrastructure.
We have set up a test platform in cloud which made use of open source technologies like, Eucalyptus, Apache JMeter, Apache Tomcat and MySQL. rpc.rstatd was used to obtain the performance counters of these instances. Following are the main steps which we have done in this performance testing exercise:
· Creation of three CentOS images : Tomcat, JMeter and MySQL.
Pre-bundled CentOS image is a major requirement for this exercise. Using this as the base image, we have created the above images.
· Tomcat and MySQL instances start up automatically during instance boot-up.
Shell script is written to start both tomcat and MySQL instances automatically during instance boot-up .The script is written in rc.local file and placed in the etc mount folder of the image.
· Shell script to add JMeter slave machine's IP to master machine's jmeter.properties file.
A CentOS 5.2 machine was chosen as the JMeter master machine. Shell script was written, to add the IP of JMeter instance to the master machine. This would automatically add the slave machine's IP to the jmeter.properties file of the master machine during instance boot-up.
· Tests were conducted in these instances as well as physical machines.
Performance test of the 'jpetstore' web application was conducted in both instance and machines. JMeter instances were used as load generators. The utilization details were captured using rstatd. We also monitored response time and throughput of the application in physical machines and instances.
Ensure that both instances and physical machines in which tests are performed are of same configuration. We have observed that the effort and time taken during the set up of test environment has reduced. Since shell scripts were used for automation, configuration settings to be done was also less compared to the settings done in traditional test environment. We have noticed that performance on the basis of response time and utilization was better in physical machines compared to instances .