Monday, November 9, 2009

TCPProxy and Grinder

I recently was working on a project and it was necessary to see what I was sending across the wire. Without having done much in the past w/ reading my data while in transit (go figure, I normally only worry about the end results), I needed to know if Flex or my backend was regurgitating my data because the transmission was garbled or what. To watch what was happening, I started using Grinder. Grinder's a really easy to use tool: you just download the zip, unzip it, then from a command line, simply type:

java -cp Downloads/grinder-3.2/lib/grinder.jar net.grinder.TCPProxy -console

My java from the command line is horrendous, but from what I understand, the first part tells the command line it's a java file to look for, the second part says what it is about to search for, the third part says where, the fourth part says what operation should be invoked, and -console says when you run the engine, pop-up the console (for mac users like me, this last part was crucial because shy of shutting down the terminal, I have no other way of telling the Grinder engine to stop grinding.

It was also important that I set my browser's proxy configuration to run through 8001, so I made my changes to the settings and now, every page loaded horrendously slow, but grinder was spitting out all the data I needed.  (I tried to upload the image, but couldn't get it out...sorry).

Now I had access to everything I was posting across the wire and what it looked like.  Grinder has many other important features than just watching your internet traffic.  It can help you record user actions to make test scripts for testing network traffic.  It comes w/ an awesome library of test scripts (and if you look hard enough can find some really funny comments)

Anyways, before I completely sign off on Grinder as being the only tool to use, I'll mention briefly another tool (you have to pay for) that is quite nice.  It's called Charles, and I must say it does a pretty good job of telling me what resources are being called too often, and does a pretty good job of interpreting AMF.  It isn't perfect, doesn't have all the flexibility of Grinder, but again, I didn't pay for it, I just tested it out.

1 comment: