Citrix Sr.Administrator, Citrix Engineer
VMWare, AWS, Microsoft
The first step in conducting a Citrix load test is to define the basic settings for your SilkPerformer project. Following that you need to perform prerequisite XenApp server configurations.Citrix facilitates real-time access to shared applications over networks and the Internet. Remote access to Citrix-enabled applications can be over DSL, T1, ISDN, or dial-up. Citrix enables multiple users to run shared applications simultaneously.
Configuring the XenApp Server
Before defining a Citrix project you must install the Citrix client software (XenApp Plugin for Hosted Applications, formerly known as Citrix ICA Client) and configure how the Citrix server is to handle timeouts.
Defining Your Citrix XenApp Project
- Click Start here on the Workflow bar. The Outline Project dialog box opens. 2. Enter a project name in Name. 3. Enter an optional project description in Description. 4. Select Terminal Services/Citrix or Terminal Services/Citrix Web Interface from the Type tree menu. The Citrix application type uses the SilkPerformer Citrix Recorder to test the delivery of Citrix enabled applications that are accessed via any Citrix online or offline plug-in. . 5. Click OK.
Creating a Citrix Plug-In Test Script
The easiest approach to recording user actions via Citrix XenApp plug-ins (clients) that connect directly to Citrix XenApp servers and then creating a test script is to use the SilkPerformer Recorder, the SilkPerformer engine used for capturing and recording traffic and generating test scripts.
Citrix Web Interface Sessions (NFuse)
Citrix Web Interface software (previously known as NFuse) provides Web access to Java, UNIX, and Windows applications that are hosted via Citrix application server software. While Citrix offers server-side control of hosted applications, Citrix Web Interface makes applications accessible through a Web browser interface (Windows Internet Explorer, version 5.5. or higher).
Creating a Citrix Web Interface Test Script
The easiest approach to creating a test script for a Citrix Web Interface session is to use the SilkPerformer Recorder, the SilkPerformer engine for capturing and recording traffic and generating test scripts. The SilkPerformer Recorder captures and records traffic between a Citrix Web Interface client application (Windows Internet Explorer, version 5.5 or higher) and the server under test.
Citrix Script Functions
- CitrixWaitForWindowCreation, used for screen synchronization, is the most important Citrix function. The first parameter that synchronizations consider is window caption. If during replay a window caption is returned that matches the caption of the window that was recorded during replay, then the verification succeeds.
Screen Synchronization and Verification
SilkPerformer supports bitmap and window verification for applications that are hosted by Citrix XenApp servers. Screen synchronization offers a means of verifying replayed Citrix content. Screen synchronizations are particularly useful for synchronizing subsequent user input that is displayed in browsers, or similar interfaces.
Text and Screen Synchronizations
Window synchronizations such as CitrixWaitForWindow() and CitrixWaitForWindowCreation() are well suited to synchronizing with an application. It is important to synchronize with the application so that the script waits until the application is ready for additional user input.
Many tasks that can be performed on an application do not show, hide, create, or destroy windows, they simply change a section of the screen.
SilkPerformer offers two types of screen synchronizations: wait for content change and wait for content match. This form of synchronization requires a window reference and two sets of x/y coordinates.
Generating a Screen Region Synchronization During Recording
Screen synchronization is achieved via Citrix WaitFor Screen functions, which are not scripted automatically by the recorder. These functions are inserted via the Screen Region dialog box during recording. Citrix WaitFor Screen functions compare replay and record bitmaps to determine whether or not they are identical.
Verification and Parsing via OCR
SilkPerformer support for optical character recognition (OCR) simplifies session-dependent verifications and parsing by recognizing text values in the screengrabs of captured application states.
String verification via optical character recognition (OCR) is achieved using Citrix Verify Text API calls. These functions are inserted via TrueLog Explorer during script customization. Citrix Verify Text functions compare text strings in replay bitmaps to determine if they are identical.
Trying Out a Generated Script
With Try Script runs only a single virtual user is run and the stress test option is enabled so that there is no think time or delay between transactions. If you have configured parsing or verification functions based on Citrix OCR support, you must generate an OCR font database before attempting a Try Script run, otherwise these functions may not operate correctly.
The SilkPerformer Citrix Player open for Citrix Try Script runs. TrueLog Explorer opens for Citrix Web Interface Try Script runs (when the Animation checkbox on the Try Script dialog box is checked). TrueLog Explorer displays the data that is actually downloaded during Try Script runs.
SilkPerformer Citrix Player
The SilkPerformer Citrix Player opens when Try Script runs begin, replaying all recorded actions in full animation. Mouse movements and operations are simulated with an animated mouse icon.
Script – This pane lists all of the executed BDL script functions and the currently executing BDL function.
Windows – This pane includes a stack of all the client windows of the current session, including window captions, styles, sizes, and positions. Top-level windows carry a window icon and are listed above subwindows.
Log – This pane lists all informational messages and events, including executed BDL functions, and window creation, activation, and destruction.
The SilkPerformer Citrix Player waits for all time-outs that are encountered during replay. To avoid waiting for time-outs (default time-out is 60 seconds), click Skip to advance past them.
Customizing User Data
With user data customization you can make your test scripts more realistic by replacing static recorded user input data with dynamic, parameterized user data that changes with each transaction. Manual scripting is not required to create such data-driven tests.
TrueLog Explorer offers a synchronization function that pauses the execution of Citrix functions until specified text or a text pattern appears in a specified location. Such synchronization is vital for the accurate execution of verification functions.
Project and System Settings
Citrix profile settings are project-specific settings related to Citrix synchronization, logging, virtual user simulation, and client options. Citrix settings are specified on a per-project basis.
System Settings for OCR
To enable optical character recognition (OCR) for parsing and verification functions in TrueLog Explorer, you must generate a font database using SilkPerformer system settings.Optical character recognition relies on font (or pattern) databases to recognize fonts and text styles in bitmaps.
Testing Best Practices
While GUI-based testing presents a number of challenges, it can be rewarding as it offers the opportunity to closely simulate a real user experience. GUI-based testing through SilkPerformer involves applying load to applications by simulating the terminal services protocol.
- User Interface (UI) design – Take advantage of any opportunity to influence the UI design of the application. A solid, consistent UI allows you to create reusable sub-routines. In turn, you can write less test code, and consequently have less code to maintain.
Ensuring a Stable Environment
Before you start recording, make sure that there will be no additional changes to the UI of the application under test, at least until your tests are complete. This requires good communication with the development team.
Once you have documented your use cases, recording or coding your test scripts should be a relatively simple task. With SilkPerformer you have both the record/playback option and the option of coding your test scripts manually. Each approach has its advantages and disadvantages.
When recording a terminal services script, you must be aware that unplanned events can change the position and size of target windows during replay, causing test runs to fail. Here are some general tips that will help you avoid the effort of finding and fixing such replay errors.
You may encounter timeout errors or other execution failures during load test execution. Here are some tips for avoiding, finding, and fixing such errors.