- Automatic correlation feature got me quite amazed when it worked flawless all the time. RPT Uses Perl type of regular expression patterns to extract data from respone. I was impressed with perl regular expression back in time when I first used Jmeter and still find they give robust way of defining pattern. RPT does all related to automatic extraction expression pattern, instance number etc. Thus makes life easy when creating a new script.
- Not just records thinktime, also records client processing delays . Hence represents right way of simulating secondary requests
I have been a HP Loadrunner user
most of the time for Performance/Load Test.
Off late, I ventured into task
to use IBM Rational Performance tester (RPT). I did had very pleasant surprises from this tool . Below
are few of those to mention
But I find that
many features ,which are very common to Loadrunner or any scripting tool, are
missing here in RPT. RPT does make maintaining scripts bit harder without simple
scripting interface . Below are the few of those missing features that made
RPT annoying to me at times.
You
cannot call a test within a test.
This meant that I
cannot refractor the common steps (like login, etc). This meant that I cannot
maintain common http calls across the scripts. Frequent RPT users advice another way on how to go about this. They suggest to break up one test in many
tests and then arrange them in performance test schedule. I did manage to refractor this way, but this
meant lot of overhead work of creating variables, assigning them . And every time I make change in one test,
then I need to go to schedule and execute it to verify. Wouldn't the world be
easy if we could be able to call a test within a test. This would solve many
small pestering problems like I just mentioned
Cannot
verify another test script, if there is already a performance schedule is
running.
While using
Loadrunner, there were situation, where
I executed a test in controller for a Project and at the same time, verified
the scripts from another project. This helped me to make use of those idle
time when test execution happens in background. But in RPT, you cannot do
that. You can execute one test at a time. If you executing a main test in RPT
master, then you cannot verify another script
No
Vuser end method
In Loadrunner, if
one stops a test , then users exit gracefully and execute vuser end code. This
is kind of feature is missing in RPT. Hence it means, when you have an
application which requires user to logoff , there is no way you can achieve
this, when you stop the test in middle. Users won't exit gracefully.
I have an
application which requires user to logoff else it won't allow to login back
for another 10 mins. If I find for some reason that I need to stop the test,
then I had to wait for 10 minutes, verify all those users are okay (imagine
time and effort spent to verify 10000 users if I require to) and then restart
the test. This missing feature has made me to loose lot of time in the middle
of tests and is very annoying for all who
are involved in the tests
Cannot
stop particular user during execution
This thing I used
to frequently in Loadrunner, where in I find some user had corrupt data
(because they did not logoff properly ) or I require to bring down a
particular number of users in a
particular group , then I had means to pick and choose user(s)and then stop
them. While in RPT, you can still stop users, but you cannot pick and choose
particular user(s) and then stop them.
On this front, RPT just fares same as Jmeter which is sad. I admire Jmeter
although it lacks this feature.
Capturing response, data substitution on error or
failure
This capability was
one of very good troubleshooting asset of Loadrunner. During a performance
test with many users doing lot of interaction,
if an error or failure occurs, you would definitely like to know what
was request made, response received, data susbituted etc ,and also at same
moment itself you view them. RPT has bit complex logging method, which I still
need to get my head around. But what I found ,when eyeball over it, there is
no obvious way to get this. Only way is you have to log a datapool
value(parameter in loadrunner), for which you have write a custom code and write
the value in Test Log. This gets logged irrespective of failure or not.
Imagine in Http request where you are sending quite number of correlated values plus
datapool values, then you have write Java custom code to log all of these. Wish, it has some option which allows to capture response, data substitutions etc only on error.
No comments:
Post a Comment