LoadRunner, Winsock, And BBQ
Posted on Oct, 2006 by Admin
Note: This article was originally posted on Loadtester.com, and has been migrated to the Northway web site to maintain the content online.
There are two things I love to do: Crush applications with LoadRunner and eat good BBQ. With regards to my first love – nothing gives me the same feeling as being able to expose things that suck, with graphs to prove it! Seriously though. I’ve seen a lot of applications and recorded against several of LoadRunner’s protocol types. But there is one that has eluded me for years. Or should I say, I have eluded it? I’m talking about the dreaded Winsock protocol. When performance engineers first experience this protocol, an immense pain is bored into their consciousness and even uttering the word “Winsock” in future projects brings back haunting memories that no amount of counseling can address. In my career there have only been a few times that I have had to resort to using it, so I guess I’ve been rather lucky. Fortunately most newer applications are web based, and legacy applications that were once recorded in Winsock are now deployed behind Citrix. The Citrix ICA protocol is being used much more often than Winsock for these applications. Thankfully it makes Winsock only the last resort in my bag of tricks.
That being said, I’m not one to run from a challenge. I’ve tried doing some preliminary work with Winsock with various degrees of success, but I would not call myself a Master of the Winsock domain. There are only about 5 people in the US that I know of who I would call a Master when it comes to Winsock. One of those people is James Pulley. You’ve probably read his articles, “Raising the Bar” here on this web site. So when I had the chance to get James Pulley free from his excursions of whatever the heck he does that makes him the multi-million dollar pimp daddy he is today, I took the opportunity to sit at his feet for a few days of custom mentoring to tackle the Winsock beast. This was a personal quest to never again will allow a hexdump to confuse me. The buffers must now bow before me.
For those of you who do not know the connection between Winsock and BBQ, let me explain. James is based out of Charlotte, NC and I am based out of Nashville, TN. Everyone knows these two states have their own kind of BBQ styles. My state is famous for “Memphis in May” and the annual BBQ championship in Lynchburg every year. On the other hand, North Carolina has many BBQ styles (Carolina, East Carolina, Piedmont) and depending on where you are from and where you are at eating BBQ on a particular day, you can get into a fight quickly when discussing which one is the best. Being the kind of guy I am, I decided to mix my two passions and hit the road to Charlotte in search of the best “Q”, and when not eating, I could per chance learn how to be a Master of Winsock. The only thing to watch out for was getting sauce on the keyboard!
James Pulley is one of those guys that you don’t dare joke around and ask him the meaning of life, because you’re scared he just might have the answer and you really don’t want to know. He’s that smart. When it comes to LoadRunner, he’s THE MAN. Because he is humble, he will tell you its just that he’s learned a thing or two from getting into some tight spots in the past. “Pulley”, as we call him, has taken me through the rigors over the past few days. We’ve enjoyed some Q as well. I thought I might pass along a tip or two to some of you who have not had the pleasure of working with Winsock. So here’s 3 things I learned from Pulley that I call “Pulley’s Pulled Pork Protocol Power Pointers”
To destroy the power of Winsock, simply turn to its history and review how it came to be. It’s based on Berkeley sockets and is well documented on the Internet. Take the time to determine what it is and what it was created for. This is probably the most important thing you can do to slice off the head of the dragon. www.sockets.com might be a good place to start.
Those of you who remember early versions of the LoadRunner classes and their emphasis on recording business processes twice and comparing the differences to understand correlated values will need to get back into that mindset and be dilligent about it. The more connections you have to juggle with, the more critical this gets.
Understanding advanced C string manipulation will help you move around values inside of buffers, strip away things you don’t want, and put things in their proper place. This helps you send back information to the receiving end the way it is expecting to see it, and thus will make things work. Learning how to use the string manipulation functions like a tool box will make you an expert at Winsock in no time.
Now I realize that these aren’t the most technical and detailed tricks, and there are no code examples. My intention is to keep this information near and dear like a sacred BBQ recipe from my grandfather. Even after several days of video and compiling this information I just have the basics anyway. But at least now I’m on my way to being a Master by following Pulley’s advice and this knowledge is being distributed to all of our Loadtester employees faster than beer at an Arkansas family reunion.
As for the BBQ, I’d have to say that Bill Spoon’s place was the best we had in Charlotte. If any of you BBQ lovers have a great place, email me the location and I’ll try it the next time I’m town. If you want to check out my personal blog on the topic of BBQ, then go to www.bbqquest.com.