So, what are some of the key attributes one must have to be a better
performance engineer?
I have always had this question. This may perhaps be because I was a
lone wolf performance tester/engineer in most of my roles and never had a
mentor or a senior engineer for guidance. Any, opportunity I had to pick
peoples brains was used upon whenever possible. Those 15 or 30 minute
interactions I had with engineers have gone a long way in developing ideas,
gaining vital knowledge and building confidence. I even once asked a naive question
as to how can one judge a good performance engineer, to which I got an answer
that said you never judge one as everyone has his/her own distinct qualities.
But still, how do one become a better performance engineer. After
working at a few places and interacting and reading about this I have here a
list of few key attributes that I suggest performance engineers or aspirants
should have a look at.
For those who want to make a start with performance testing, start off
with learning a performance testing tool. JMeter is a good start, however with
other tools such as Load Runner I have known so many extra and important
feature which are not there in JMeter. Next I suggest learning a bit
about server monitoring, server resources to measure, response times and a
little bit about statistics. Zabbix is one good open source tool for remote
monitoring. It is advisable to keep building knowledge as you progress. Load
testing is dangerous and it is advisable to be judicious with the test
application you choose or the load you generate. This was a little para about
starting with Performance testing. I will perhaps write a separate post on this
later.
Now for the intermediates, try and pay attention to detail always,
especially with analysis:
·
Every load test you run the one graph you need to pay attention to
detail is the Response time graph.
·
Ignoring a spike or ignoring different requests can be disastrous.
·
Correlation with a corresponding abnormality you see in other graphs,
resources or parameters you are monitoring is the next step.
Some advice:
It is also important to fully confirm what the requirements are and what
happened the last time the test was run. When you join a new project or are
assigned to a new task, just spend some time knowing the requirements thoroughly
and the older reports if there are any.
For ongoing projects try and understand what happened, especially
for response times and defects.
Performance engineers are expected to provide analysis and
recommendations hence analyse data for potential bottlenecks or at least
specify that analysis is coming soon in order to avoid any repercussions.