3

I am looking for a way to perform a load test on a client-server GUI application, developed in .NET C#. I was under the impression that Visual Studio Team Foundation Server has an option for creating an executing a load test. But after doing some research I found out that with the load testing option within Visual Studio you can only load test a web application?

And if so, what alternatives do I have to create and execute a load test on this kind of application?

Edit: after further investigation I discovered you can use UI tests in your load test: http://msdn.microsoft.com/en-us/library/ff468125(v=vs.100).aspx, but that for every user you want to simulate, you need an additional agent PC, is that correct?

1 Answer 1

1

There must be some communication across the network between client and server. A Visual Studio Web Performance Test can be used to simulate one end of that communication and so apply load to the other end. A common performance test simulates many clients to see how the server behaves. To do this you need to generate the same communications as the client would do.

One approach is to run Fiddler2 on a client machine to capture all the network traffic generated by the client, to export the Fiddler2 log as a Visual Studio Web Performance Test and then use that in a Visual Studio Load Test.

Performance of the client is often less important. Only one client runs per computer and some client performance issues can be resolved by using a more powerful computer. Other client issues can be resolved, or at least investigated, by the usual methods for optimising a program.


For you Coded UI question. Yes, Coded UI uses the mouse, keyboard and screen of a computer so only one Coded UI test can be run at a time on a computer. In a load test, Coded UI tests can be run on both physical or Virtual Machines. The number of simulated users is limited by the number of machines available.


I suggest using Task Manager or PerfMon on your client while manually using the application to get an idea of client performance. The perception of overall client performance is more likely to be controlled by server performance and the nature and quantity of the communications between client and server than it is by processing within the client.

A Load Test can combine Coded UI and Web Performance tests. It is possible to create Web Performance tests to keep the server busy with many simulated users. At the same time one or two Coded UI tests could run as part of the same load test. The Coded UI tests could have code to collect timing data. The load test itself can collect any PerfMon counter available on other computers so it could collect performance data of the computers running Coded UI tests.

3
  • Clear answer thanks. So if the end user performance is really important I should use UI tests, but then I am limited in the number of concurrent users.
    – John
    Commented Mar 27, 2014 at 13:09
  • @John Answer extended.
    – AdrianHHH
    Commented Mar 27, 2014 at 13:53
  • Yes, the hybrid approach also crossed my mind: 1 coded ui user and x web performance users based on fiddler logs. Thanks again for the extended answer!
    – John
    Commented Mar 27, 2014 at 17:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.