Synthetic monitoring for desktop applications

What can you do to achieve a consistent user-experience when it comes down to desktop applications? Maybe you have already seen our post about synthetic monitoring for web applications. Wouldn’t it be nice if we got the same possibilities also for desktop applications? Well, luckily we do so.

Why should I monitor my desktop applications? 

When you or your business depend on a desktop application, it should be in your interest to always know if that specific application is working as expected. When there is a problem with it you must intervene immediately, otherwise business processes can get stuck and can cost an immense amount of time and money.

Let me start with an example. You have a desktop application that runs on windows. Your whole business-process depends on that specific application. Maybe, it’s a custom-made solution just for your needs. Obviously, it is important that you can rely on this application but just like every software, it will have its problems and weak points. Maybe it is connected to a database, maybe it uses an API to fetch and send data to a server.

 

All these external connections are weak points for your application. You could monitor each of those external connections separately but why don’t just monitor the whole application’s lifecycle?

How to check if my application is working

What would you normally do to check if a desktop application is working?
Open it, maybe perform a log in, do several things on the GUI and close the application again. So far so good, but this is only the theory. How would this simple test look like when we want to automate it? - Completely the same.


We are working with a software that allows us to record every interaction with the application’s GUI done by the user. The recorded actions get stored in a “scenario” and are ready for automated playback. If an action fails during playback, the scenario throws an error. Detailed information about every playback, no matter if successful or failed, gets stored in a log.
There is also the possibility to integrate the whole automation/playback/error-handling process into the monitoring solution as a service check that runs periodically.


The key to application monitoring is to keep everything as easy and effective as possible. Which functions do users need the most? How do users interact with the application? Take those points and create a scenario out of it.

Lifecycle monitoring example of a desktop application

 

  1. Open the application on a Windows environment
  2. Log in with username and password
  3. Navigate inside the application to a specif page
  4. Fill out a form
  5. Save
  6. Verify completed action 
  7. Log out
  8. Close application

 

This example could be a realistic scenario to test an applications lifecycle. If you have a bigger application, you can create one big scenario or you can split your test into several parts to monitor different applications' lifecycles separately. The thing that really matters, is that you are always the first to know when your application fails to work, so you can immediately intervene.

In conclusion

Synthetic monitoring for windows applications is no rocket science but a blessing in disguise. Creating scenarios can be frustrating at the beginning because every application is different, but once created you can rely on a well performing, consistent test of your application. As it integrates perfectly into the monitoring system, you will always get notified instantly when something doesn’t work as expected. The scenario building can cost you time at the beginning, but once created, everybody gets a benefit out of it due to minimal response-times when it comes down to problems.

 

 

Written by Felix Geier