Best practices for Execution servers
We are setting up Silk Central and corresponding execution servers for the first time. During testing, we have discovered that the execution servers work best when someone is logged in, via RDP, to the execution server while the tests run. Is this the preferred method? Are there ways to use the execution server without having someone logged into the box?
What are the options for running tests in a headless state? For Silk Test? Selenium? Other options?
How have others used the execution servers? What are the best practices for using execution servers?
could you please define "work best when someone is logged in via RDP" in more detail? What happens if nobody is logged in?
Usually Execution Servers do not need any attention at all - meaning you do not have to watch them executing your tests.
ok, I did a fresh set of tests this morning with two different execution servers. I am using one test with a very simple plan for web as a visual test.... use IE... goto Slashdot.org... goto google... search... click on the wiki link... verify heading. It works on my local machine... It works using workbench on the execution servers. We are using a shared silk test database.
I logged onto each server. Rebooted it and restarted the execution server as right-click Admin. Also have an issue with TP.xml not being accessible. little change permission gets that working correctly. Need to figure this out too... but it is secondary.
I have two test plans which consists of one test and key words setup to look for a specific server. I triggered a test run and switched to the RDP session... would watch and the test would pass. I did this two times, so I have two passes in a row in the history. I then triggered another test and left the RDP session minimized. The test would fail. It would run the test and fail on the click step.
Here is the contents of the details file.
Test name Date/Time Result Line Number Action Result detail Command Details User Name Machine Name
Gfly 2015-07-15T10:56:05 1 <<Start>> Admin AUS-VMPROD157
Gfly 2015-07-15T10:56:06 3 Using BrowserApplication 'bing_com' Admin PROD157
Gfly 2015-07-15T10:56:14 4 Navigate to URL: http://google.com/ Admin PROD157
Gfly 2015-07-15T10:56:15 5 Using BrowserApplication 'google_com' Admin PROD157
Gfly 2015-07-15T10:56:17 6 Click 'id=lst-ib' at 41, 12 Admin PROD157
Gfly 2015-07-15T10:56:28 7 Enter 'butterfly<Enter>' into 'id=lst-ib' Admin PROD157
Gfly 2015-07-15T10:56:29 8 Using BrowserApplication 'google_com' Admin PROD157
Gfly 2015-07-15T10:56:34 Playback Error 9 Click 'Butterfly - Wikipedi*' at 165, 8 Could not find object '//BrowserApplication//BrowserWindow//A[@textContents='Butterfly - Wikipedi*']'. Admin PROD157
Gfly 2015-07-15T10:56:34 Error Screen 9 Using BrowserApplication 'google_com' Screen captured due to a playback error: Could not find object '//BrowserApplication//BrowserWindow//A[@textContents='Butterfly - Wikipedi*']'. Admin PROD157
After that, I triggered another test and opened the RDP window full screen and the test passes. I then disconnected the RDP session via windows Start->Disconnect. I then triggered another test and it failed as well with similar output in the details file
Also, I had the take a pic on exception enabled and the screenshot is a black picture.
So, yes, I was able to run a test without being logged onto the machine. But it failed on the click event.
I repeated this same process on the other machine and got the same result.
Shutting down the RDP session is what is causing the 'object not found' errors. When you open the RDP session on the execution server you are effectively connecting your local keyboard and mouse to the remote execution server. Closing the RDP session disconnects the local mouse and keyboard from Silk Test and as Silk Test requires to see a keyboard and mouse, you then start getting 'object not found' errors. Starting the test without the RDP window means that Silk Test sees the mouse and keyboard attached to the execution server (whether real or virtual), so you don't get the problem.
I regret that I'm not able to provide any suggestions on the execution server itself.
Ok, thanks! That makes sense.
So let me get this straight... running the execution server running as a process requires to be ran by a user logging in. Which also means that the execution server (process) will not be running unless someone is logged in and have started the process..
So that leaves running the execution server as a service. But according to this post:
running the execution server as a windows service capability was removed with version 15.0.
Is there something I am missing? Is there another way to use the execution server? Is the only option to use it via the process option?
I would just like to provide a follow up on this issue from the opened incident.
The issue with this scenario was down to the RDP session itself:-
This is a known issue and is documented on the Silk Test release notes.
There was a Knowledge based article on a workaround for this issue to run minimized which the OP confirmed worked on their environment:-
Essentially this registry key tricks the environment into thinking the session is still live and keeps the connection between the mouse and the keyboard.
-As explained within the incident if a user wants to run RDP without having to log in and keep the Execution terminal open this is not possible due to a restriction with RDP.
Recommended the use of - VNC and Radmin as an alternative to RDP