What are some tools for Automated UI Testing of a UWP Windows 10 Touchscreen Tablet App?

I would prefer a tool that allows emulation, records steps, writes the code, outputs errors in notepad, and interfaces with visual studio or team foundation server.

Performing automated UI tests using Appium requires three elements:

  • The app that we want to test, we will call it the main app
  • The app that contains the tests scenarios. We will call it the UI test app
  • The driver that allows to communicate the UI test app and the main app

The UI Test Automation flow will be like this:

  • The user installs the main app
  • The user starts the driver
  • The user runs the UI test app
  • The UI test app asks the driver to start the app
  • The UI test app asks the driver to send clicks or other actions to certain UI elements
  • The UI test app verifies the value of some UI elements
  • The advantage of this mechanism is that the test app can be written in a language other than C#

1 Answer 1


Option #1: Perfecto has expanded on its Appium extension with the ability to develop and execute Appium test automation on Windows 10 native apps. Perfecto now supports WinAppDriver, the equivalent Appium driver for Windows 10. Customers can use this driver and develop Appium test code in any supported Remote WebDriver language and execute it on Windows 10 PCs such as Surface Pro 3, Surface Pro 4 and others.

Option #2: Windows Application Driver by Microsoft is a service to support Selenium-like UI Test Automation on Windows Applications. This service supports testing Universal Windows Platform (UWP) and Classic Windows (Win32) apps on Windows 10 PCs. Windows Application Driver complies to the JSON Wire Protocol standard and some application management functionalities defined by Appium. If you've been looking for better support for using Appium to test Windows Applications, then this service is for you!

Videos about WinAppDriver

Installing and Running Windows Application Driver:

  • Download Windows Application Driver installer from https://github.com/Microsoft/WinAppDriver/releases
  • Run the installer on a Windows 10 machine where your application under test is installed and will be tested
  • Run WinAppDriver.exe from the installation directory (E.g. C:\Program Files (x86)\Windows Application Driver)

  • Create the test project and solution. I.e. Select New Project > Templates > Visual C# > Test > Unit Test Project

  • Once created, select Project > Manage NuGet Packages... > Browse and search for Appium.WebDriver
  • Install the Appium.WebDriver NuGet packages for the test project
  • Start writing your test (see sample code under samples)

Testing a Universal Windows Platform Application:

To test a UWP app, simply specify the Application Id for the application you want to test in the app capabilities entry when you are creating a session. You can also specify launching arguments if your application supports them through appArguments capability. Below is an example of creating a test session for Windows Alarms & Clock app written in C#:

// Launch the Alarms & Clock app
DesiredCapabilities appCapabilities = new DesiredCapabilities();
AlarmClockSession = new WindowsDriver<WindowsElement>(new 
Uri(""), appCapabilities);

// Use the session to control the app

You can find the Application Id of your application in the generated AppX\vs.appxrecipe file under RegisteredUserModeAppID node. E.g. c24c8163-548e-4b84-a466-530178fc0580_scyf5npe3hv32!App

Developers can use the official Microsoft Inspect Tool to identify the Windows 10 app objects (“AutomationID’s”) and use them in their test code. To start using the Inspect Tool, download the Windows SDK for Windows 10 and simply launch the Inspect Tool from here: C:\Program Files (x86)\Windows Kits\10\bin\x64\inspect.exe.

Microsoft Emulator for Windows 10 Mobile is also included the Windows 10 SDK

Testable features in Win 10 Mobile Emulator Include:

  • Screen resolution, screen size, and memory.

  • Screen configuration. Change the emulator from portrait to landscape mode. Change the zoom setting to fit the emulator to your desktop screen.

  • Networking. Networking support is integrated with Windows Phone Emulator. Networking is enabled by default. You do not have to install network drivers for Windows Phone Emulator or configure networking options manually in most environments.

  • The emulator uses the network connection of the host computer. It does not appear as a separate device on the network. This eliminates some of the configuration issues that users encountered with the Windows Phone SDK 8.0 emulator.

  • Language and region settings. Prepare your app for an international market by changing the display language and region settings in Windows Phone Emulator.

  • On the running emulator, go to the Settings app, then select the system settings, then select language or region. Change the settings that you want to test. If you're prompted, click restart phone to apply the new settings and restart the emulator.

  • Application lifecycle and tombstoning. Test the behavior or your app when it's deactivated or tombstoned by changing the value of the option Tombstone upon deactivation while debugging on the Debug page of project properties.

  • Local folder storage (previously known as isolated storage). Data in isolated storage persists while the emulator is running, but is lost once the emulator closes.

  • Microphone. Requires and uses the microphone on the host computer.

  • Phone keyboard. The emulator supports mapping of the hardware keyboard on your development computer to the keyboard on a Windows Phone. The behavior of the keys is the same as on a Windows Phone device

  • Lock screen. With the emulator open, press F12 on your computer keyboard twice. The F12 key emulates the power button on the phone. The first key press turns off the display. The second key press turns the display on again with the lock screen engaged. Unlock the screen by using the mouse to slide the lock screen upward.

Features that you can't test in the Windows 10 Mobile Emulator:

  • Compass
  • Gyroscope
  • Vibration controller
  • Brightness. The brightness level of the emulator is always High.
  • High-resolution video. Videos with a resolution higher than VGA resolution (640 x 480) cannot be displayed reliably, especially on emulator images with only 512MB of memory.

Option #3: Winium.Mobile is a free open-source Selenium based Remote WebDriver implementation for automated testing of Windows StoreApps and Silverlight apps, tested on emulators (currently only Windows Phone/Mobile apps are supported)

Supported Platforms

  • Windows Phone 8.1 Store Apps (or Universal App for Windows Phone)
  • Windows Phone 8.1 Silverlight apps
  • Windows 10 Mobile (there are some known issues)

Option #4: Appium

Option #5: ExperiTest

automation platform comparison

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.