For 17 years I have been load testing transaction based applications using a toolkit developed by my business partner. Having decided it is time to get an exit strategy we have decided to package the software. To that end in January I started to learn C++ (most of the tools are written in C but I had no C development experience.
Well I'm very pleased with C++ and have developed several programs to manipulate and generate scripts from network traces. Tx for all the help here especially in regard to unravelling the secrets of the template libraries.
Now I need to look at GUI interface development and inparticular graphically supporting multiple edit windows of network traces. My question is where from here?
I need a GUI development method/tools/IDE. The code needs to run on Linux and windows (as some clients are limited to the latter). My preference has always been to buy a big fat book and work through the examples. It works for me.
Can anyone make any suggestions? Any thoughts, direction or example tools would be gratefully received. Cheers Nigel
For your kind of requirement you should place processing element in some service and not in GUI. In GUI part, you should put up only the elements that you want to show to end user. The end user can be limited user, administrator of your product or anyone else.
You would communicate to the service via some IPC mechanisms like sockets, pipes, mailslots and so on, as per OS. Also, your client and server can be on different machines, different operating systems. Products like Database servers work like this only.
For the GUI part, you can of course choose what Lindley recommended.
Ajay I was focussing on the GUI as I need a prototype. The development will be performed overseas, Vietnam favourite at the moment although the beauty competition will be early next year.
The toolset is single user. Typically we generate scripts for 7 to 9 business processes so the whole thing only takes a couple of weeks. After that tests are distributed with driver processes onto any old servers or workstations on the network. For that reason the architecture may as well be as simple as possible. I'll get reader on architectures but if you have any further thoughts or if you or anyone could point me at a good book to take me to the next level of C++ development that would be appreciated.
ddeme I think that is where I'm going. Basically the process is as follows:
capture two network traces of a business function (snoop or tcpdump or whatever). An example might be: logon, navigate menus, qry supplier, create purchase order, logoff. Later on the activity after logon and before logoff will be looped so that the script can reflect normally user behaviour.
Convert these to an ascii readable form. These files contain all the traffic sent and received by the client.
My new C++ prog compares the two captures looking for variable data. It then searches for the variable bits to determine if they were data elements entered by the user or variables sent from the server that we need to remember and probably return in future messages (e.g. internal keys/codes, session ids).
The C++ prog then generates directives within a oneway script (just the messages sent by the client) that the driver processes will action in order that when replayed the servers see no difference between our virtual users and real users, with data being unique for each execution.
Now all well and good but it is not possible to fully automate the process. (Happy to discuss why two fully uncached network traces are often not identical in structure but I guess this is not the place. This process is generic catering for dozens of different protocols so specific parsing of the messages is not an option.).
So my C++ prog has a good shot at producing a replayable script and then outputs a list of exceptions. So my GUI needs to display the two twoway scripts originally captured and the oneway script which now has some directives added. By inspection one discovers the anomolies (you need a good search facility). Then tools can generate the directives from the data highlighted in one or more of the displayed files. So in the gui I think a list of tools and/or wizards to generate the directives (which can be quite complex and have multiple elements in different parts of the script).
The generated/edited script can then be run (stepped through) to see each message sent and the related server response (like scripting tools used for functional testing).
Once it works with unique data for each transaction and for different users then it enters the already developed (C) environment to be run where, when and with as many users as required (20000 is the maximum concurrent in out 18 year history).
Well C++ seemed the right development language and after 9 months I just love the stuff. But having used a book and lots of help here I need to get more sophisticated. Problem is How?
The other day I downloaded a widget set, followed a tutorial, and after 6 hours had got from one error message to the next. There must be an easier way?
But perhaps there isn't ?
Last edited by nigelhoath; October 10th, 2009 at 03:51 AM.