My question is why load testing on desktop applications is different than on web applications.
I was told by SmartBear that load testing on desktop applications is usually outsourced due to its many layers. Can someone help me understand what that means?
Does anyone know of any tools to perform loading testing on desktop applications?
In the most of cases, load testing means that you are interested in one or any combination of the following:
-- How many data requests per second your data service layer (this may be either database, or application server or both) can handle without crashing and with acceptable performance;
-- How fast the requested data returned and/or displayed to end-user and what is causing delays if any;
-- If the whole system remains stable and responsive on continuous load without been rebooted.
The above means that you must create some load on the data service layer, measure the response time and figure out where delays occur if any.
In the case of web applications, the situation is usually more simple because in almost all cases these applications communicate with the data service layer through http(s) protocol. Thus there are quite a few tools that simplifiy the process of recording the traffic between web client and service layer and make it possible to replay the recorded traffic on behalf of a lot of users. This, effectively, creates required load and you can use the tools that make it possible to profile performance and memory for the components of the data service layer. (Like database server profilers, application profilers (e.g. AQtime - https://smartbear.com/product/aqtime-pro/overview/, performance counters provided by OS, etc.)
In the case of desktop applications, the situation is much more difficult because desktop clients can communicate with the data service layer via different protocols, including binary ones that are not easy to capture and playback. Thus, the primary problem with load testing of desktop applications is to generate a load on the data service layer.
P.S. The above is not about performance profiling of the desktop client. If you need just to measure performance of the desktop client, then profilers like already mentioned AQtime should work for you.