Hello there (and sorry for those of you who already read this on another list).

I once had to organize the stress testing of a web based application.
The client wanted to know whether the server would handle a given number
of concurrent sessions and how long would the users have to wait in
front of their stalled browser if such a situation ever happened.

The app was hosted on a big server, and I only had an aging laptop to
bombard it with requests. My machine would have been lying panting on
the floor before the server even noticed something was happening. So I
figured I would run the tests concurrently from several aging laptops at
once, but I didn't want to run between each test machines to try and hit
'return' on all of them within an acceptable timeframe. So I tried to
find some software that would help me manage these test scripts
running on different machines.

I could only find The Grinder in the free software realm, but that means
Javaâ, and scripting the tests in Python. I could not find anything in
Perl. And I find The Grinder not flexible enough to my taste.

I started off writing a Perl Module to achieve this. It runs a server on
one machine, and a number of clients on several other machines. The
server beats the rythm, telling the client when to start their tests, or
when to wait for the other test machines to complete theirs. The server
gathers the results at the end of the test session for later reporting. The
tests themselves are run only by the client machines, and might involve
WWW::Mechanize in my particular case, but any other thing will do.

I have something almost working right now. I'd like to upload it to CPAN (after
I have at least improved the documentation kindly written by Module::Starter,
that is) but I'd like your enlightened opinion on what name it should bear. I
first thought of Test::Distributed, but the perl-qa folks do not agree as it is
not related to Test::More.

I was then suggested (still by the fine people in perl-qa) to choose some name
under Parallel::. To me, Parallel would mean to run different programs at the
same time, probably on the same computer, while my module would allow to run
the same program on different computers. Still, Parallel:: is so far the best I
can think of. Parallel::Distributed, Parallel::Distributor, Parallel::Remote,
Parallel::GoRemote ?

Any comments, suggestions, or questions ?

TIA


-- 
C Ã d r i c   B o u v i e r

Reply via email to