Recording Flash and Silverlight in Transaction Perspective

KITE and Transaction Perspective can record Web sites that include Flash and Silverlight, and other rich Internet applications.

This topic will focus on Flash and Silverlight, but the principles are the same regardless of the environment (including ActiveX components or Java applets). Note however, that only Flash and Silverlight plug ins are installed on the Keynote Transaction Perspective agents, so only those types of components can be recorded for testing and monitoring from the Keynote agent network. Interactions with other components (including Java and ActiveX) can be measured from the desktop in KITE, or on a private agent (if the needed plug ins are installed on the private agent).

KITE allows you to record interactions with Flash and Silverlight by recording the specific locations on the screen where each mouse click, mouse hover, or text input takes place. These locations are recorded as pixel coordinates. When the script is played back, KITE will click, hover, or input text at the same location on the Web page, which should allow the Flash or Silverlight application to function properly.

Recording mouse clicks, hovers, and keystrokes

When recording a Flash or Silverlight applications, you interact with the application by clicking, hovering, entering text in fields, and pressing system keys such as the tab and control key. Of these actions, only the hover action requires a special technique: you must click the F9 key with your mouse cursor in the desired location in the Flash or Silverlight application for the hover location to be recorded by KITE.

Window size

Because KITE records the location of each interaction, the size of the KITE recording window must be the same as that used by the Transaction Perspective measurement agent. By default, the Recording Window opens to the correct size, but if the window size is changed, a button on the KITE Recording window enables you to reset its dimensions to the default size.

If the size of the Recording Window has
changed, click Reset Window Size before
recording Flash or Silverlight applications.

Network activity

KITE and Transaction Perspective agents measure network activity -they do not measure client-side user experience generated by the Flash or Silverlight application. That is, they do not measure user interaction with the Flash or Silverlight application itself, such as the time taken for the application to complete an action. However, any network activity generated by the Flash or Silverlight application is measured and reported by KITE and Transaction Perspective agents.

In general, it is good practice to record only actions that create network activity. However, actions in a Flash or Silverlight application that do not create network activity may be recorded, and may be necessary to carry out a desired activity, but by default they will produce an -70042 error on playback. You can prevent the error from being reported by setting the Record error if no network activity setting on the transaction level to False.

This script reports a -70042 error because Action 2 includes no network activity.

New page options

Because interactions with Flash or Silverlight do not automatically generate KITE navigations, you need to specify when a new page (action) should be recorded. Choose Yes in the Dynamic New Page field of the Recording Window if you want each interaction with the Flash or Silverlight application to be considered a new Action (or page) in the KITE script. Select No if you want all the interactions with the Flash or Silverlight application to be contained in a single Action. The Prompt option is not recommended when recording Flash.

You can change the default New Page option for all scripts from Prompt to Yes or No by selecting Options > Recording > Transaction Perspective > Dynamic New Page.

You can change the default Dynamic New Page behavior.

Providing sufficient time for Flash or Silverlight applications

Flash or Silverlight applications take time to initialize and execute.  Therefore, you need to make sure that KITE allows sufficient time for Flash or Silverlight application behaviors by setting timing options appropriately. If you do not, when the script is played back, KITE or the Keynote agent may try to execute mouse clicks, hovers, or text entry when the Flash or Silverlight application is not in the correct state to accept the interaction.

Adding time for initialization—edit the prior action’s completion event by adding a timer event

If your Flash or Silverlight application needs to time to initialize when first navigating to a page, you will want to add a timer event to the completion event of the prior action.

Adding time mid-interaction—edit prior step’s “delay after execution” value

As you interact with the Flash or Silverlight application, time may be required for the application to react before the next click or data entry will be valid.  For all but the last Flash/Silverlight click in each Action, KITE makes available a “Delay After Execution” parameter in the Script Properties Editor. Change this parameter to 2000 milliseconds for a two second delay and retest your script.  Best practice is to choose the lowest number that will work consistently.

As an alternative to editing specific Delay After Execution values,  you may also change the default step delay option to 1000 milliseconds (Options > Settings > Recording > Transaction Perspective > Default Step Delay).

Another best practice is to record with ample time in between actions. This helps KITE select the best possible completion condition.


  • Some actions are recorded with the completion condition Download Cycles.  In certain cases the Timer completion event is required to make sure Flash/SilverLight controls are fully rendered and ready for subsequent user interaction.
  • Some actions are recorded with completion condition HTTP Messages/Inactivity if no download cycles are received.  Some of these actions might fail during playback if there is no network activity at all. Specify Timer as a completion condition in such cases.
  • If the specified step delay/ timer interval is not sufficient, increase these values or try HTTP messages/inactivity as completion event.
  • If text or keystrokes entered while interacting with Flash or Silverlight are not recorded properly, you can edit the script to manually add them.
  • Check whether the site has changed after the recording. If the size/content of a Flash or SilverLight application has changed after recording the script, you might need to manually modify the offset values using the Script Properties Editor. There is no specific technique to determine the exact new values, so trial and error may be needed. Recording again may be the best workaround.
  • Verify whether browser size (Script Playback window) is the same as when the script was recorded; browser size changes can cause script failures.