[REPOST] Testing network apps
djk at tobit.co.uk
Tue Jan 20 23:09:39 GMT 2009
In the spirit of neighbourliness, here is a (slightly modified) question
in a new thread:
I am thinking about writing a framework to test a networking app (that
does discrete message switching over both wire and radio on various
bearers). The testing environment would involve dynamically generating
configurations on each of two test "nodes", each node would be on a
separate machine. I imagine this will require a "controller" of some
sort, on each node, that writes configs and then starts and stops the
software as required.
A test process then connects to each of these controllers and, having
received a "node warmed up" signal from the controller, provides input
and monitors output to/from the actual node software being tested.
The actual tests themselves are mainly very simple, along the lines of
"send xx bytes and check that we get them out the other end the same",
but there are some slightly more complex ones to do with failure modes
(which will involve the controllers).
Obviously, this will involve a lot of IO::Select and IO::Net* and a lot
of asynchronous/non blocking working with timers and stuff. The basics
of all of this networking is fairly simple and reasonably well
understood. However, I have never done much in the way of complex
network communicating testing of this sort using the Test::* modules,
only simple module/library testing.
Any suggestions as to a) which of the Test::* modules would be easiest
to bend for this sort of thing b) should I actually bother with the
Test::* stuff? Are there any other modules that spring to mind that
would save some time/effort? Has anyone done an SDLC implementation in perl?
More information about the london.pm