views:

204

answers:

1

We're developing a server application that uses sockets to handle client communication, obviously we want to test the server. Does anyone know of a good (open source) harness that can test the server using multiple threads on multiple client machines?

A: 

Quite frankly I would just roll your own and that's always what I do. A open source application would not be able to send packets according to your application level protocol as I'd advise to test at least authentication, some basic application level instructions, etc.

What I usually do is, write a stress tester application that spawns x amount (I usually test about 1000 clients per server) of clients and then just use a Timer (e.g. 25ms resolution) and on every timer callback, I randomly pick one of the connected clients and randomly execute either nothing, send data or disconnect the client. If I receive a disconnect notification for one of the clients, I spawn a new one to bring the total connected count back to x. Then I let the whole thing run for a couple hours...

Tom Frey
The test-scenario you provide tests only a fraction of the possible issues with a multi threaded server. All possible actions should be tested simultaneously.But I do agree that a making your own load testing system, spread over multiple machines if possible is the way to go for a propriety protocol.
Glenner003
What part of a multi threaded server would you not be able to test with this stress testing method? A client either connects, sends data, receives data, or disconnects all of which can be tested with aforementioned approach and you can test any kind of application level protocol in the same run if desired.
Tom Frey