Picture
Performance testing is a niche skills, it needs various skills in addition to functional testing skills. People who wants to develop their career should understand the system as a whole and all the components involved in the system. The performance is a measure of how your application is performing under a given load conditions. During performance testing, you need analyze and find the performance bottlenecks. You will need to understand how the system works, different components involved with the system etc. The bottleneck can be at any place in a distributed system setup. It needs good skills on how operating system, network, disk I/o, Processors, Memory works for example having more than 90% CPU doesn't mean there is issue with CPU. Performance testing is lot more than having knowledge about how to create a scripts for a particular load testing tool. It is possible to think, having deep skills in creating load test scripts and executing them mechanically on an application is performance testing. and monitoring and analyzing the results are work on other performance experts but it actually combination both and much more.

Thinking about skills needed for performance testing I'd specify the following areas in addition to load testing like Find what is going on with the system? Monitoring and Performance Analysis. Knowledge on performance counters needs to be monitoredYou got results. Analyze the results. check for any visible bottleneck. Verify if tuning any system, application parameter would helpTuning doesn't help - the bottleneck is in the application. See if any code profiling would help

Take the SQL trace and analyze if the SQL's creating performance bottleneck

And write, present, communicate to all concerned

Performance test engineer needs to know about the tunable parameters on OS, Network, Database. Also idea about how the application should be designed to perform better under load conditions. May not need to be an expert but need to learn the tricks as you progress on the career. There may be a question like how to acquire so many skills, answer could be simple - constant self learning, putting extra efforts and getting experience on the job. It takes time to learn and become expert. Basic understanding of the system should be a starting point and put efforts to learn and understand the performance of a system as a whole. Different components involved in the distributed computing. Any one component or the part of the system can cause the performance bottleneck. Engineer should be well versed with OS concepts, basic networking fundamentals, Technology used in the application development etc

Another important thing to understand is the objective of the performance testing and what you really want to achieve with the performance test results. You may need to use different approach for performance testing depending upon the objective and need. For example, one want to check the reliability of the application, plan the tests for more than 10 business days ( 8x10=80 hours). Analyze the requirements, system available, tools available to use etc. After the design of the performance test, decide on collecting the performance counters from the system where you are executing the performance test. Decide how you want to execute the tests and execute the tests for required time duration. Collect all the test results, performance counters to analyze the test results.