Windows Azure: Automated UI testing using the power of cloud
Automated UI testing needs to be performed from different parts of the world.
As we have seen in my previous post on Performance testing using the power of cloud, it is possible to install test agents around the globe and run Load Tests from the agents. The same setup can be used to run unit tests or web tests by distributing them across different agents.
The challenging part is to run UI tests (e.g. Coded UI) from the agents in cloud. This is because we will always need to have an active desktop session for the tests to interact with the UI. One option would be to have dedicated hardware on premise from where active remote desktop session is always maintained for all the agents in the cloud. The other option is to tweak the configuration a little as described below without requiring any additional hardware.
Perform the same steps which were done for the setting up the environment to run load tests i.e. Installing Test Controller on Premise and Setting up Windows Azure Connect.
Now below are the changes that the needed to specifically run Automated UI Tests
Instead of having just one user on the Azure VM’s, we will need to have two users. One of them is used for Remote Desktop and the other one is used to Run Tests.
The Remote Desktop user needs to be specified in the configuration file (.cscfg)
Now don’t minimize any remote desktop windows and simply close the remote desktop window of the Remote Desktop user. This way the Remote Desktop window of the Test Agent user will be always active and the UI Tests can interact with the desktop.
Now you can run your tests using the Test Controller. The Agent running as an interactive Process should be shown with an asterisk (*)
The Automated UI Test runs on the Test Agent
To confirm that the desktop doesn’t get locked, wait for 10-15 minutes, rerun the automated UI test and verify that it passes.