Free Online Publication
Windows Server 2008 R2 Remote Desktop Services
From Beginner to Expert Level
Content
The Book
... Table of Content
... Preface
... About This Book
Part I –
A Beginner's Guide to Remote Desktop Services
1 Overview and History
2 Installation
3 Licensing
4 Configuration
5 Client Software
6 Application Installation
7 System Administration
8 Network Planning
9 Printing
10 User Environment
Part II –
An Expert's Guide to Remote Desktop Services
11 Virtualization
12 RDS Internals
13 Remoting Protocol Details
14 Security
15 Registry Settings
16 Server Sizing
17 Resource Management
18 Testing and Quality Assurance
19 RDS Scripting
20 RDS for Developers
Author's Profile
... About
... Benny's Biography
... Presentations 2009, 2008, 2007, 2006, 2005, 2004 and earlier
Awards

 


Microsoft Windows Server 2008 Terminal Services

21. Testing and Quality Assurance

Posted by Benny Tritsch on June 22, 2008

[Testing and QA] [Criteria] [Methodology] [Tools and Products]

Back Next

21.3. Available Tools and Products

Read in this lesson...

  1. Microsoft Test Tools

  2. Third Party Script and Macro Tools

  3. Commercial Products

 

Microsoft Test Tools

Through different sources – such as the Internet and Resource Kits – Microsoft provides various tools that can be used for different tests on terminal servers.

  • Consume: Combined with various test scenarios, the Consume.exe command line tool simulates a resource bottleneck. With this tool, it is possible to occupy physical memory, swap file, hard drive, processor, or kernel pool in a targeted manner. This helps developers and administrators estimate how applications might behave in many extreme situations.

  • Create File: The command-line tool Createfil.exe generates files of a predefined size filled with blanks. It can therefore occupy hard drive space during a test or transmit defined amounts of data via the network.

  • Windows Program Timer: The Ntimer.exe command-line tool measures the time a program runs. Ntimer.exe launches the relevant program as a parameter. Subsequently, Ntimer.exe indicates the time that the program took overall, the time the program spent in user mode, and the time it spent in privileged system mode.

Significantly more advanced terminal server test environments can be created using Terminal Server Scalability Planning Tools. When you run this program, the installation process creates a folder with a name of your choice and saves a number of tools, test scripts, and documents in it.

The test environment includes the following automation and test tools:

  • Robosrv.exe: RoboServer is the central control tool with a graphical interface for testing the load on a terminal server. It is usually installed on a special control computer that controls a number of clients. RoboServer determines these settings: the number of user sessions per client platform, the number of clients in one group, and the time between certain test events.

  • Robocli.exe: RoboClient is installed on each client platform and controls the test scripts that the clients execute on the terminal server. RoboClient receives the commands for how and when to start the test scripts from RoboServer. Together with RoboServer, RoboClient is responsible for automatically executing complete test scenarios. Before RoboClient can be launched, RoboServer must already be installed on the network.

  • Tbscript.exe: Terminal Services Bench Scripting is a test tool and represents a script interpreter for Microsoft Visual Basic Scripting Edition scripts. It supports a number of specific extensions for controlling terminal server clients.

  • Qidle.exe: Query Idle is a test tool that is able to automatically identify user sessions on terminal servers that are idle for a long time. In test environments, this is the same as an interrupted script. As soon as Qidle.exe finds such a user session it informs the administrator with a system sound.

Besides these tools, the test suite also includes pre-prepared test scripts and some quite comprehensive documentation on installing test environments, executing tests, and using the Tbscript.exe tool.

In addition to the scripts on the remote clients, RoboServer is also able to execute a local canary script. This script runs before the actual test and before adding a new group of client sessions. The duration of the execution of this script is logged and allows a statement to be made on the respective terminal server load before and during the test.

To start a test, the relevant clients must be selected using the user interface. The context menu then allows you to select the Run Script option.

NOTE: You can also run RoboServer from the command line. The syntax is as follows: Robosrv –s:ServerName –n:ClientNumber, where ServerName specifies the target server for RoboClient and ClientNumber specifies the number of initial connections to RoboServer. RoboClient can also be run from the command line; the syntax is: Robocli –s:RoboServerName.

In combination with Tbscript.exe, VBScript scripts do the actual load test work. This is based on an already installed version of the usual Windows 2000, Windows XP, or Windows Server 2003 RDP client. The relevant configuration is performed by the Smclient.ini file that sets all required parameters. Starting Tbscript.exe and the corresponding scripts then allows the automated execution of the following functions:

  • Logging on, logging off, and ending a connection

  • Launching applications

  • Transmitting mouse and keyboard input

  • Transmitting data and character strings

  • Using the clipboard

  • Executing loops and conditional jumps

  • Using API calls in DLLs

All in all, using Terminal Server Scalability Planning Tools successfully implies quite considerable effort that should not be underestimated. Once you are familiar with the tools, however, you will find they present a powerful method for helping administrators improve their knowledge of terminal servers and the way terminal servers behave when experiencing heavy load.

Third Party Script and Macro Tools

Script and macro tools help create automated process controls for user interfaces and Windows-based applications. The results can either be used as basic material for test environments such as Scapa StressTest or can be used directly for server-side application tests. The following list contains an overview of the most popular script and macro tools used on terminal servers.

  • AutoIt by Hiddensoft (http://www.hiddensoft.com/autoit) is a simple but free script tool.

  • MacroExpress by Insight Software Solution (http://www.macroexpress.com) is a macro tool developed to support users in automating repeated tasks. MacroExpress includes hundreds of commands and the option to program responses to system events.

  • Macro ToolsWorks by Pitrinec Software (http://www.pitrinec.com) is another common macro tool. It includes its own macro language with more than 150 commands, a graphical development environment, and several elaborate options to control the timing of the developed macros.

  • WinBatch by Wilson WindowWare (http://www.winbatch.com) is a script and macro tool with a recording component and its own development environment.

  • WinTask by TaskWare (http://www.wintask.com) is another script and macro tool whose programming language is very similar to Visual Basic. It includes a recording component for keyboard strokes, mouse movement, and Windows functions, which facilitates the creation of scripts. In addition, WinTask contains functions to control program timings, which make it highly suitable for maintenance tasks.

Commercial Products

There are some commercial products available that are targeted to terminal server and Citrix XenApp load testing.

HP LoadRunner

LoadRunner is a part of HP’s Business Technology Optimization suite of products and solutions. It is a rather expensive but very popular and powerful test product. It includes support for the Citrix ICA protocol, creating a product version referred to as LoadRunner for Citrix.

LoadRunner for Citrix's test logic is on the client side. A specially adapted ICA client allows the use of ICA functions for controlling tests via scripts. An external administration console centrally controls the clients. Powerful processing script tools facilitate highly realistic simulation of user sessions. The scripts support the dynamic import of server names, user names, passwords, domains, applications, and window parameters. The interaction of the simulated users comprises text entries and mouse events. The user session's synchronization with the control script focuses on the window name and the content of graphical elements.

LoadRunner's particular strength lies in its options for evaluating Citrix server tests. The relevant performance counters, which can be displayed in many correlations and statistical views, allow detailed statements on the test results to be made.

Tevron CitraTest

CitraTest by Tevron is a purely client-side test environment, like LoadRunner for Citrix. It is based on image comparison algorithms that are able to identify pre-defined bitmap images within an ICA client. The relevant script logic is coded in Microsoft Visual Basic 6 and determines the behavior when recognizing expected image patterns. In line with the predefined logic for finding the expected graphical application elements, the script generates mouse and keyboard events. A tool supplied with CitraTest records, saves, and, if necessary, modifies the reference images for pattern recognition.

Because an application's graphical output elements might differ depending on the user, CitraTest is able to handle variations in colors and character strings. Furthermore, integrated algorithms for optical character recognition (OCR) allow text output to be read and interpreted. The tests are evaluated based on the measurement of the response times caused by mouse and keyboard events on the client.

Scapa Technologies StressTest for Thin Client

StressTest for Thin Client by Scapa Technologies is based on an architecture that needs components on both the terminal server and the clients. The relatively thin server component starts and controls the execution of test scripts and coordinates this with the client interfaces. Communication with the relevant client component is integrated in the RDP or ICA communication protocols.

The Scapa StressTest client component allows the import of different standard scripts for coding the test logic. This includes process control, support of different user names, passwords, and dialog box entries. A separate component handles the controlling of test clients. It executes, controls, and evaluates the relevant scripts. Scapa StressTest is compatible with script tools such as Wilson WindowWare WinBatch or TaskWare WinTask. A Scapa StressTest specialty is the simultaneous support of the ICA and RDP communication protocols.

 

Back Next

 

Read in this chapter...
21 Testing and Quality Assurance
21.1 Test Criteria
21.2 Test Methodology
21.3 Available Tools and Products