Cloud computing is changing the way application are deployed, monitored and used by the end users. Cloud offers a virtually infinite pool of resources for computing, storage and networking resources where applications can be scaled as desired.
So how do you measure the performance of these applications in the cloud?
Performance is the utmost factor in testing a web application as it directly impacts the end user experience. Performance testing in cloud is different from that of traditional applications. Let’s find out what should be your strategy for performance testing in cloud. The main aim of the Performance testing is to measures the various parameters such as system throughput, latency with changing number of parallel users accessing your application, with different load profiles and various other performance metrics. In Cloud infra, this becomes a bit more typical with various virtual machines coming into play.
Let’s first understand a bit about cloud.
Cloud is a pay-per-use kind of model which you can scale whenever you want. You can demand the additional resources required and it will be allocated to you. With a high degree of location independence, virtual resources are dynamically assigned and reassigned according to the customer’s need.
Some of the Cloud metrics which are important for a successful Cloud implementation are storage, processing, bandwidth and number of users accessing it at any given point. Elasticity is one of the major factors for the cloud infrastructure as it defines the cloud’s ability to deal with varying load variations by adding more resources during high load or consolidating the users to fewer points when the load decreases, all in a live cloud setup. Scalability, Availability, Fault tolerance and Reliability are the other factors which defines a good cloud infrastructure.
Moving performance and load based application testing to the cloud, brings the cloud benefits to the Software testing by lowering capital and operational costs, and also support for distributed development & testing teams. Cloud-based testing lets you get the maximum by utilizing a cost-effective means of testing applications at scale. It also allows you to simulate load tests constituting millions of concurrent users coming from multiple geographical locations.
Below are the types of performance tests you can perform on cloud:
- Stress test over Cloud
- Load & performance test over Cloud
- Browser Performance testing over Cloud
- Latency testing on Cloud
- Targeting infrastructure test on Cloud
- Failover test on Cloud
- Capacity test on Cloud
- Soak test on Cloud
The cost effectiveness is one of the major factor which is pushing the cloud computing. Cloud lets you create separate test regions for system testing with ease as and when you want. The right test strategy should focus on the motive behind moving the cloud, including cost savings, infrastructure access ease, reduction in cycle times, choice of public, private or hybrid cloud etc. The strategy should also clearly mention the type of tests to be performed in the cloud, do you want only Soak tests, or capacity tests or all the ones mentioned above. There are certain risks associated with the Cloud and that should be kept in mind before taking the final decision. Building a test environment, Infra requirements for the tests and the required testing tools, bandwidth, hardware and software, etc. are the other parameters which should be part of your test strategy.
Security, quality, reliability, latency, bandwidth etc. should be carefully looked upon if you are going with any external cloud service provider.
After all the setup is done, we finally need to execution of tests. For performance tests, it becomes typical to vary the load with varying user’s demands and many other factors, so this should be tested according to the defined test strategy. Continuously monitor and analyze test results as you would do in other setup, but in this case it should be done in real-time to ensure you can improve it over a period of time.
Cloud usage is usually linked to the payment very closely. Though scalable, you need to pay as you scale, so make sure that you have that covered with your service provider as per current usage and future usage, otherwise you might end up with a huge bill.
Gallop’s performance engineering teams have successfully performed Performance testing on Cloud for our numerous clients. Our partnership with various testing tool vendors like HP, TestPlant and Neotys allows us to offer you a tool agnostic approach towards performance testing. Get in touch with us if you are looking to test performance of your business critical applications on cloud and we will be glad to do a free assessment for you.