Troubleshooting GUI Level Testing
When troubleshooting GUI-Level issues it is important to note that there are three separate components (SilkPerformer, SilkTest and Windows/Terminal Services) which all play an integrated role during the execution of a GUI-Level virtual user; as such each of these components should be considered when attempting to isolate the root cause of any potential errors. Therefore with this in mind, the purpose of this resolution is to break down investigating GUI-Level issues into three individual components in order to enable an end user to more easily identify and rectify possible issues.
Step 1: Ensure that your Windows Test Environment is supported and configured correctly
The first thing to consider is that Silk Performer can only execute multiple GUI-Level virtual users on an Operating System which is either Windows Server 2003, 2008, 2008 R2, 2012 and which has Terminal Services installed, licensed and configured. If you attempt to execute more than 1 GUI-Level virtual user from a Windows 7 machine you will encounter the error message "StInitSession(GUI-Level Testing Replay: 10 - Virtual user information, SilkTest Connection timeout reached", which is detailed in the following two resolutions:
Why do I encounter the error "StInitSession(GUI-Level Testing Replay: 10 - Virtual user information, SilkTest Connection timeout reached)" during a loadtest?Why do I encounter the error "StInitSession(GUI-Level Testing Replay: 10 - Virtual user information, SilkTest Connection timeout reached)" during a loadtest?
Why am I unable to execute multiple GUI-Level virtual users on a SilkPerformer Agent installed on Windows XP?
The next, and perhaps most important, step is to configure Windows Terminal Services to allow each SilkPerformer virtual user to execute a SilkTest test case within a separate Terminal session. Therefore it is of the vital importance that each of the settings outlined in the resolution below are configured exactly as specified:
What configuration changes do I need to make to the Windows Server in order to enable GUI-Level testing support for SilkPerformer?
Please note that failure to configure Windows Terminal Service as recommended above can result in error messages such as "GUI-Level Testing Replay: 10 - Virtual user information, RDP not connected" as detailed below:
How can I resolve the loadtest error "StExecuteTestcase(GUI-Level Testing Replay: 10 - Virtual user information, RDP not connected.)"?
Once you have configured Terminal Services then the final configuration check is to ensure that you are using the correct version of SilkTest (for test case generation) and that you have the correct SilkPerformer Licenses available for a GUI-Level load test. The following two resolutions detail both of these requirements:
Which version of SilkTest do I need to install in order to execute a GUI-Level virtual user in SilkPerformer?
What licenses do I need in order to use the "GUI-Level" testing feature in SilkPerformer?
Step 2: SilkTest Configuration and Test Case generation
When using SilkTest to generate a test case for execution in SilkPerformer it is important that you consider that the test case will eventually be executed by SilkPerformer within a Terminal Service environment. This means that certain considerations need to be made, such as ensuring that a full version of SilkTest is installed on the SilkPerformer Agent otherwise SilkPerformer will report the error message "GUI-Level Testing Replay: 7 - Application could not be launched", see resolution:
Why do I get the error "GUI-Level Testing Replay: 7 - Application could not be launched"?
You will need to ensure that any directory paths which have been configured for SilkTest are still relevant when the SilkTest Project is exported to SilkPerformer; otherwise the SilkPerformer runtime engine may be unable to can locate the directory path used to launch an Application Under Test. Failure to set a global path can result in error messages similar to the following:
Why do I get GUI-Level testing "Error: Directory XXXX does not exist"?
Finally before exporting the SilkTest Project to SilkPerformer it is imperative that you export the project with correct checkboxes enabled, the resolution below describes both the consequences of not doing this and the correct way to export a project from SilkTest.
Why do I get the error "GUI-Level Testing Replay:11 SilkTest reported. Project failed to open"?Why do I get the error "GUI-Level Testing Replay:11 SilkTest reported. Project failed to open"?
Step 3: SilkPerformer configuration and how to deal with common GUI-Level Replay errors
The final component to look at when troubleshooting GUI-Level issues is of course SilkPerformer. The first thing an end user should consider before they replay the GUI-Level BDF script in SilkPerformer is that there are major differences between executing a SilkTest testcase within SilkPerformer using a normal "console session" and executing a SilkTest test case using a "Terminal Server Session". The major differences between running a BDF script as a console session and terminal server session are detailed in the following resolution:
When replaying a GUI Level BDF script what is the difference between running as a console session and a terminal server session?
Failure to understand the differences between the type"s of "sessions" which can be executed in SilkPerformer and failure to instruct SilkPerformer that you wish to execute a Terminal Server Session can lead to the common Replay Error "GUI-Level Testing Replay: 10 - Virtual user information, More than 1 user per Session is not allowed.." occurring. Therefore it is advisable to review the resolution below to learn how to avoid this error during replay in SilkPerformer.
Why do I encounter the error "StInitSession(GUI-Level Testing Replay: 10 - Virtual user information, More than 1 user per Session is not allowed, please check if user credentials are provided" during
Other errors which can commonly occurring during replay are related to the Terminal Service Session in which the SilkTest test case runs. For example is it important to consider that when a SilkTest test case is initially recorded it is often on a Operating System environment which may use different user credentials to the environments in which the SilkTest test case will be executed within the Terminal Server Environment. This can have the affect that unexpected windows may be generated during replay within the Terminal Server Session and as a result the SilkTest Agent will report an error message during replay replay within SilkPerformer. The following resolution provides a good example of one such error and also instructs how you can avoid this error moving forward.
Why do I encounter the error message "SilkTest reported, Log Error: *** Error: Window "window name" was not found" during replay? Why do I encounter the error message "SilkTest reported, Log Error: *** Error: Window "window name" was not found" during replay?
Finally before you execute an actual GUI-Level loadtest it is important to consider that there are limitations in regards to the number of virtual users which you can be executed within a Terminal Server environment. The final resolution bellows outlines the typical number of GUI-Level virtual users which can be executed from a single SilkPerformer installation.
How many GUI-Level virtual users can I concurrently execute from a single instance of Windows Terminal Server?