Question:
I am trying to find a web application stress testing tool that can do
the following:
1) Load a set of pages (e.g. the content of some iframes)
2) If all the contents of all the pages in 1) were loaded without
time-outs or errors, load another set of pages (e.g. loggin in).
Otherwise stop the test sequence.
This would be the basis of a stress test of an ASP.NET-based
application. What I want to test is how many users can login without
getting time-outs or errors.
Answer:
I'd be interested to know if there are web application stress testing
tools on offer that can't do those two things. I personally haven't come
across a tool that didn't offer the requested capability. Some followup
questions: How many user do you want to simulate? Do you need a recording
capability or would you be happy to write scripts from scratch? How much
time have you got before you need to complete your testing? What sort of
budget have you got for tools?
Without being more specific, I can see this becoming a long thread of "my
favourite tool is Compury InterRational's EmpriRunner, etc, etc...."
Microsoft ACT which is a part of Visual Studio is probably a good
start, in conjunction with the SOAP toolkit. You want to capture some
XML transactions first. With each iteration you need to simulate a
unique request, you have this capability with a flexible scripting
language (JScript or VBScript). Also, you have at your disosal the
Performance monitoring API with which you can augment your scripts.
If you have mastered testing with Microsoft ACT you can then graduate
to writing your own performance testing toolkit as I have, with which
you have an even greater flexibility.
The applications I've tried so far are not capable of doing task
number 2, i.e. wait for the results of some previous activities. They
only do a sequence of http-requests with some (set or variable) delays
and record/analyze the responses.
So far I have mostly looked at tools with recording capabilities, but
it's not really that important.
I wish to be able to simulate somewhere around or above 100 users,
which I think will be close to the upper limit of what the server can
handle for some of the activities. The time limit for the testing is
"yesterday" and the tools I am looking for should be reasonably cheap,
since what I want them to do is relatively simple.
For the active responses you are testing you're going to need a
playback mechanism that can sense when something is wrong and then
take corrective action.
With eValid technology this can be done with a simple playback script
that faults out if either of the two types of failure you describe
occurs.
You can run multiple eValid playbacks in parallel, increasing the
number of eValid instances, until your candidate website or web
application begins to fall over.
The eValid playback script outline shown below involves two script
files. The main one uses OnErrorGoScript to intercept errors, and uses
OnAlarmGoScript to intercept going over a pre-set time limit
(NNNN msecs). The second script "cleans up" the activity in cases
there was a failure.