Monday, May 30, 2016

Performance Testing of Traditional Client Server Desktop Application with TCP Protocol

One of the application that we have to test is

Traditional Client/Server Application
.Net Framework 1.1
TCP Protocol
.Net Remoting

These type of application are very complex to implement and also you will face many challenges while testing this type of application. Because

1) Some of the Performance testing tool does not support the recoring of desktop application like Jmeter,
2) Most of the Application does not support the recording of TCP protocol like Load runner,
  Neoload ,Load complete,VSTS etc
3) Most of the application doesnot support the application with .Net framework less that 2.0 like Load Runner, Neoload, VSTS (CodedUI),Silk Perfomer.

To test these type of application one can use the work around as mentioned below.

Using Load Runner

Though there is a protocol named as ".Net protocol" in Load Runner that are used for testing the application built on .Net framework but there is a limitation that LoadRunner doesnot support the recording of application that are built on the framework less that 2.0


1) Try to record the application using win-socket protocol of Load runner, By this you will be able to capture the network TCP packets and able to read the request, In this case if your application is not using any encryption to send the data over server, then you may be able to find this as the best solution.

2) Do the script enhancement like parameterization , correlation as you did in enhancing the http request in Load runner.
Please take care that different functions will be used while  doing correlation in Load Runner using in winsock.

May be you will be able to do the testing of you application.

Using .Net Remoting Client:

As most of the tools are not compatible with this application so we may go for the creating .Net Client and make a framework in which we can call .Net remoting functions in multi threaded fashion,
But this type of test is very complex and it is strongly recommended to ignore the same as it will require high development effort and highly time consuming to implement.

Note:   Most of Indrustry standered Opensource/paid tools will not work with this application.

I will share the details of testing outcomes that we have got with many industry tools.
We have checked the feasibility of this application with LoadRunner,Jmeter,NeoLoad,VSTS,Load Complete, Test Complete, VSTS (CodedUI),fiddler, AutoIt etc


Capturing TCP/UDP Traffic/Requests

In One of my recent project , i got an opportunity to work on TCP protocol.In starting i was very much excited but soon my excitement lost after googling for the issues that we are encounter to test this type of application.

We have googled for many days and even didn't found any tool that can even capture the TCP application.You much be know about the wireshark,fiddler etc network capturing tools but in my case of Desktop application these tools are also not able to records the TCP traffic

The tools mentioned on the most of the sites are not working,After the work for many days i came to the conclusion that i will be mentioning below.

  • Only tool that i have found and easy to use was SmartSniff to capture TCP Packets and UDP packets. 

There are also some of the tools that can capture TCP traffic but theses tools are paid and require heave download and installation and also require the technical expertise in respective tool like

Use Proxy in Silk Performer
Use Winsock Protocol in Load Runner

So please avoid using these paid heavy tools.

Now in Next post i will share my experience while testing a Desktop based client server application using TCP Protocol over .Net Remoting,
Also i will share my experience about the challenges that we have faced while performance tested this application with most of the know popular industry tools.