Performance testing is a niche area. The approach becomes a bit different for different types of applications. In this post, we’ll be focusing more on WebApps. To master performance testing of a WebApp, we need to understand the architecture of the application under test in detail. This will help us to find the right strategy for testing the application. Then we need to understand the running environment of the application, the network and protocols the application is using. Then we need to find the right tool to do performance testing.
So let’s categorise the topics we are going to cover into the following sections. We will go through all the topics in brief. A single post will not be enough to cover this topic in detail. We will publish more detailed article on multiple of following topics.
- Understanding the application architecture
- Understanding the application environment
- Understanding the network and protocols
- Understanding various open source tools
- Understanding various types of performance testing applicable for the application
Understanding the application architecture:
A WebApp can be built using multiple architecture.
- SOA
- Pub-Sub, etc
Understanding the application environment
We need to understand the environment where the application is running.
- What are file descriptors
- What is load average
- What is CPU usage
- What is memory usage
- What is heap memory and why should we care about them
Understanding network and protocols
We need to understand the standards the application is built on. On top of that where the application is hosted and whats speed of the network.
- What is the bandwidth of the network
- What is http
- What is REST
- What is Soap
- What is thrift
Understanding various open source tools
We need to then decide on a suitable tool to test. There multiple commercial as well as open source tools.
- Apache benchmark
- wrk
- JMeter
- Gatling
Understanding various types of performance testing applicable for the application
We need to understand what kind of tests we are going to perform on the application.
- Load testing
- Stress testing etc
Misc
We need to understand some miscellaneous concepts.
- Memory leak
- Heap dump
- Thread dump
Details of each toping will follow in subsequent posts.