Automating a Workstation with multiple users - automation

We have an Enterprise product installed in a windows server machine where the requirement is to login to the machine with the different set of users at a time and access the application.
We are using Test complete for automation and i have tried to achieve this by distributed testing where we can configure multiple hosts and run at a time.The problem is Test complete will not allow RDP into multiple users on a same VM. only one user for 1 Host.
Any idea of achieving my workflow..? Test Complete dont have option to do that.Any other tools or ways to achieve my test plan?

Related

Take desktop screenshots in a Jenkins Build Slave during Selenium Tests

I have some problem with Jenkins and Selenium.
I have a Jenkins Master and some Build Slaves, installed as Windows Services on Windows Server 2016 machines, in which I perform build jobs. In some of these jobs, I perform test with Selenium and I need to take some screenshots of these tests, but all the screenshots that I got are black.
Reading on the web, I found that many people are facing this kind issue. But I also found this, https://www.coretechnologies.com/blog/windows-services/interact-with-desktop/, in which is reported that it's not allowed for Windows Services to interact with desktop.
So, the question is: it's possible to make interact Jenkins Slave Service with the desktop in order to take some screenshot of it?

Running tests on VM does not work unless window is open

We are attempting to do our testing remotely, so we set up some Virtual Machines to run our GUI tests and to free up our local machines. What we were hoping for was to have the tests run just like they would on a physical machine, however they seem to require an active Remote Desktop Connection up in order to run properly. These tests are written using LeanFT and it is a windows app so this is not mobile GUI testing.
Is there a certain way to configure this VM to set it up properly for automated GUI testing that does not require an active Remote Desktop Connection? It seems as if its sharing the controls on our physical machine..
Or am I completely wrong here.. Is a Remote Machine different than a Virtual Machine? Thanks!
It's possible to run a GUI test without an active Remote Desktop Connection
I achieved this with leanft through the following 2 steps:
Configure how you execute your tests
Whether you're running via a Jenkins slave or through another kind of "listener" (maybe ssh, or bamboo, etc.), you need to configure this listener to start after a specific user is logged on.
In my case I was running through the Jenkins slave, so I've configured the startup of the slave to launch as soon the user logged in.
Tell windows to login the user when the computer starts. You can achieve that via the following registry:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"DefaultDomainName"="DOMAIN"
"DefaultUserName"="USERNAME"
"AutoAdminLogon"="1"
"DefaultPassword"="PASSWORD"
The core requirement is that you need to have an active session (regardless of whether you are using Jenkins, TeamCity, Grid or other tools to launch the tests).
For your virtual machine, you will need to have access to the console. For VMWare vSphere, there is a native client or website. For VMWare Workstation or VirtualBox, these automatically display.
Using the console access, log into the system and set it up to never log out or sleep or hibernate. This is a variety of OS settings that you can look up.
Essentially, these boxes need to always be logged in. With this setup, you need to be sure access to these systems is controlled so that you don't have random people logging in / or logging out.

Can jenkins slave connect to multiple servers?

We have several parallel development groups working on different things in separate environments. Each group has a jenkins server/2 windows slaves setup that is executing selenium nunit tests.
Is it possible to to have all the slave instances in a pool that each of the jenkins servers can pick from? We are using the JNLP b/c there are issues with some of the browser tests that require running in an interactive desktop. I thought perhaps I could start a JNLP for each server instance on each machine, but that seemed the wrong way as each server would have no knowledge of other servers use of it. Is there any way to make a slave available to multiple servers?
I don't think you can do what you are looking for.
You can run multiple slaves on one computer, but as you said, there is no way to keep multiple servers from trying to access the same desktop.
A better solution is probably to combine your Jenkins servers. You can use the security settings and views to set it so that regular users are not even aware of the other projects being run in parallel- while allowing one Jenkins server to coordinate all of the builds (which is what you want).
You may want to check with CloudBees Ops Center (http://www.cloudbees.com/joc), in particular, the Share Executors (Slaves) Between Masters feature. That would do exactly what you want, but for a bit of a price.

TFS: Configure test agents for mulitiple physical web environments

Background:
We are running all physical
hardware.
All developers are using
VS 2010 Ultimate and we will be using
iTrace files.
We would like to run
our coded UI tests from test manager.
We have multiple test environments:
AT, SIT, FVT, UAT living each on
physical servers.
I’d like to be able to go into test manager select tests and say go run in AT or go run in FVT.
Here’s my question:
Do I set up interactive test agents on all of my test environments and instruct the coded UI tests to hit http://localhost/application?
Do I set up an interactive test agent on a another machine to execute the tests? If so how do I configure the coded UI tests to point to each of the test servers? Do I need test agents running as a process of the web servers?
We are using the following unsupported Microsoft features: http://blogs.msdn.com/b/lab_management/archive/2011/02/15/running-build-deploy-test-workflow-on-physical-environments.aspx
Actually, the blog describes exacly what you need and we got it up and running within a day like described, in a VMWare lab, without having the Lab Management pre-requisites deployed.

Online product demo environment for Windows applications

I'm looking for a way to allow potential customers to try my application before they buy it.
The product is a windows forms application that requires an SQL Server database to operate.
Although I have a functional demo that the customer can install on their network, I want to make it easier for them by have them "play" with it at my environment.
I remember Microsoft had (has?) something similar. I was testing Visual Studio a few years ago in a virtual environment where I was connecting to a server at Microsoft.
They setup the environment this way so when a user logs off after using it rollback his actions. Or to explain it better: when a user logins it starts with a new, clean environment.
So any projects I've created testing Visual Studio were lost after I logged off.
Any suggestions?
Thanks.
Some solutions that come to mind:
Provide remote access
You could provide access to a running instance of your application via some sort of remote connection protocol, e.g. via RDP or via VNC.
For example, there is a Java VNC client which can run as a Java applet; you could put that on a webpage and have it connect to a VNC session you host on your servers.
Or use Windows Terminal Server, and allow connection via RDP.
Both solutions of course have the drawback that people need to open the appropriate ports, if they are behind a firewall. There might be ways around that, however (e.g. you can run VNC over HTTP).
VM image
A completely different solution: Provide a ready-to-run VM image (for VMWare, VirtualBox or similar) of your application, including server and everything. You would need a demo version of your app though, plus getting redistribution rights for all the proprietary components (Windows OS, SQL server) might get hairy.
Offer videos
Often people do not really need to actually use the app; they are mainly interested to see how it works. So maybe it is enough to host videos of the app in operation. That allows you to put in some advertising for your features, and lets you show the users what they might miss when testing on their own.