views:

48

answers:

3

Requirements:

I wish there was a software that does:

  • runs my application in "learn mode"
  • logs any network traffic
  • creates a database of request-response combination (e.g. http)

  • runs my application in "offline mode"

  • catches any network traffic (e.g. http), and returns a response from the request-response database

Purpose:

Testing Client-Server software (java), even if the server is not running or not fully implemented yet.

Solutions:

I haven't found this yet using google. Maybe i dint't find the right keywords.

I would even programm it myself in java. It would be hard to implement "any" protocol, but http only would be a good start. I would have to hack into the java.net classes, but it could be possible...

Is there any software/project that did this already?

Insufficient alternatives:

  • There is kind of similar software for Webservices, soapUI.
+1  A: 

Not sure if this is what you're looking for but I use WireShark. It is a network connection sniffer and it can pick up all packets and show them in raw format. You can sort them by destination, source, protocol and all that. I don't know if you can automate it but it does give you a good diagnostic view of your network traffic.

jghost
WireShark is nice. But I didn't see a option to "fake" the response. But it's a good idea to use it to create patterns of request-response sessions.
Synox
A: 

I'm actually creating a Java network simulator interface to NS-3 (a C++ network simulator) at the moment, and it works with realtime events (although I'm currently fixing some bugs and implementing realtime scheduling properly using the TAP code as a guide about what to do). It allows you to create individual applications as classes using an interface similar to the Java networking code. Although it's fundamentally a discrete simulator, I have a Berkley socket compatibility layer on top of it which keeps scheduling events until a result is obtained (or you can just code in a discrete manner). If you want it or wish to collaborate on it, get in touch with me :)

Chris Dennett
i didn't fully understand the possibilities of NS-3. Does it allow to match requests to responses?
Synox
It allows practically anything you'd need to do. I'm creating an MMORPG framework with some unique concepts in Java and needed application implementations on network nodes which would communicate with eachother with limited bandwidth requirements, packet loss, latency, etc. Maybe it's a bit complex for your needs.
Chris Dennett
A: 

Have you looked at The Grinder? It's a load-testing tool that allows you to write scripts which feed in the data used when it runs. It might not hit all of your requirements, but it's the only thing that comes to mind.

Erich Douglass