Forum Discussion

sguda's avatar
sguda
Regular Contributor
14 years ago

Can I perfom load test against client server application.

I need to do some performance testing agaist client server applivcation.

Is this something possible with Test Complete Load testing.

1 Reply

  • AlexKaras's avatar
    AlexKaras
    Champion Level 3
    Hi Sri,



    First of all, I think that it would really help if you provide us with: a) clear and strict definition of what is 'client-server performance testing' in your given case; and b) relevant description of teh architecture of your system.



    The case is that quite often the 'performance' is understood as the responsiveness under the given load in the given environment. And in the complex systems that contain more than one component, the pure performance of some component may influence the performance of other components (e.g. slow network may impact the speed of the window refresh in the browser).

    Usually, to measure the performance, one needs some profiling tool that measures how quick the measured component is and the load generator that loads the measured component.



    In classic client-server systems, the client part is an application that is used by the human user. That means that in most cases, the client application is not expected to execute a lot of concurrent jobs but must respond promptly to the user's actions for the current task and provide the user with visual information without big delays. The bottlenecks of the client applications are usually searched for manually according to the requirements from business (e.g. the grid with the list of ongoing payments must be displayed within 3 seconds; while it is OK if the monthly report is generated within 30 minutes). When the bottleneck is found, then the execution speed of the problematic area is measured ander required load. If we are talking about application code, then the speed of the code execution is measured with the profiling tool (e.g. AQtime (http://www.automatedqa.com/products/aqtime/)) when the initial load (e.g. the file to be processed) can be provided by TestComplete.



    So, if you need to verify the performance of the client part, then, in most cases, you need to go through the functional business cases and compare the time it takes to do them with the required figures. (Please note, that without requirements, the performance cannot be tested. This is because performance is the non-functional feature of the application and is the thing that is evaluated subjectively - the speed that is fine for someone can look completely unacceptable for someone else.)

    You can use AQtime to find out the parts of the code that performs poorly and use TestComplete to drive the functional task (by clicking the buttons, etc.) and/or provide the client with the load data (e.g. feed the client with some huge resultset).



    The server part of the client-server system is usually designed to be GUI-less with the functionality to accept requests from the client applications, execute these requests and provide clients with the result data. Note, that 'providing client with result' does not require the real client application, as it may be quite enough to have some stub that will read the returned data and acknowledge them.

    Again, to measure the performance of the server code, you need a profiler and requirements. But the difference is that the server must be able to process concurrent requests from different clients.

    TestComplete can generate concurrent requests of two types: a) http(s) traffic; and b) requests from the client applications.

    Concurrent http(s) requests can be generated via the Load Testing functionality of TestComplete. With this type of testing, TestComplete can emulate requests from 250-300 different users from the single physical machine.



    Requests from the client applications can be generated via the Network Suite functionality of TestComplete. With this type of testing, TestComplete and the client application must be installed on several computers and set up to work with the same server part of the system. Then, TestComplete can drive these client applications so that all of them request simultaneously, for example, the monthly report.



    Summing up the above: yes, TestComplete (with combination with AQtime) can be used for measuring the performance of (some) client and server applications. Exact requirements of what and how should be measured are required to give more specific recommendations.



    Hope this will help.