WPM & Citrix XenApp
As described in previous posts Web Performance Monitor is a powerful tool designed to monitor performance of your web apps from an end-user perspective. With a bit of creativity and Citrix Xenapp environment properly configured, you can use it to also monitor your desktop applications as described previously by aLTeReGo.
Using Citrix XenApp is relatively straightforward, but in some cases you can have a transaction, which needs some more care. Let me show you a few tips and tricks how to use XenApp with WPM, but please note that XenApp is a fairly flexible tool and your environment might differ from the defaults used in this post. Simply adapt principles described to the look and feel of your own instance.
Citrix Xenapp is a framework which will help you to use your desktop applications from a wide range of computer systems and mobile devices. You can benefit from the ability to access your desktop application via web browsers, which makes it possible to monitor it by WPM.
Before we start, we will need a deployed and configured XenApp environment, an up-to-date version of Java Runtime Environment (JRE) and WPM.
When you open the login window of Citrix XenApp, you can check the Messages tab to see if you have client software (Java Runtime Environment) installed and ready. In this post we will rely on using Java to access your application.
After you install JRE (if it was missing), I recommend you to hide security warnings:
- Open Internet Explorer on the computer where you want to make a recording.
- Open the XenApp webpage and log in.
- Try to launch the application you want to monitor.
- Click Run on all modal security warning windows and select that you don’t want to show the warning again.
Configuring XenApp requires setting the window size and setting client type for the connection.
You can either define these settings system-wide for all users or you can define them at the beginning of each transaction. I recommend setting them for each transaction individually, because it is more independent of system settings and it wouldn't be affected by upgrade unintentional changes in system-wide configuration.
Configure settings of window size to of 640x480 or 1024x768. This ensures any Citrix application being recorded will remain within the bounds of the WPM Recorder. To set this up, go to the XenApp home page and select Preferences -> Session settings.
After that make sure you use Java client for your transaction. Go to Preferences -> Connection settings and click the Change Client button. This will set the session to use Java client only.
Now you are ready to simply start your application and do the actual recording.
Making it more robust
When using XY mode, we are sending mouse click events on the level of operating system and there is no feedback if the action runs correctly. Best practice is to verify the results with Image Match after a mouse click action.
Image Match actions are CPU intensive. To improve the performance of a playback:
- Select only small regions or portions of the image
- Make sure that the selected area is unique. If you select the close window button, it might easily happen that WPM selects the first close button it detects (not on the one you wanted).
If the playback is failing on an Image Match action:
- Examine the application screenshot to see if the image is present.
- Make sure you use the same version of Internet Explorer for both recording and playback.
Image Match compares bitmaps and as such can be prone to errors due to variations in color depth. To make it more resilient either set lower sensitivity or make sure you use the same color depth for both recording and playback of transaction. This is very important if you for example record your transactions via remote connection using RDP or similar protocols.
To lower the sensitivity of Image Match, run the Recorder with /advancedmode command line option. This will give you the ability to define custom sensitivity for Image Match actions. See the threshold setting on the screenshot below.
Note: If you set the similarity setting to a too low value, you might get some false positives.
Using XY mode you are sending mouse click events to the absolute coordinates. You can make your transaction more robust if you use Image Match with Click instead. Image Match will find the button even if it changes the position or even if the application window opens on a different position.
- As discussed previously, with XenApp it is very important to keep your transactions clean and minimalistic. Remove any clutter, unnecessary actions recorded, anything that is redundant or irrelevant for monitoring of your application. This way, your transaction will remain robust and maintainable.
- It also very important that your application is running within the browser window and is not opening separate windows. If the application opens in a new separate window, WPM cannot reach it and you cannot record your transaction. This is matter of configuring Citrix XenApp properly.
- The last thing to check is the timing of your transaction. Use wait actions or combination of Image Match actions to absorb any variance in response times and also to ensure that when you send your mouse click on the object, the object is already displayed in the browser.
In this post we have learned how to configure Citrix XenApp for usage with WPM and how to record robust and maintainable transactions for monitoring of your desktop applications.