I am often asked the question, “Do you know of an automation tool that can be used in automating desktop-based applications?”
If that’s you, here are the top 11 free automation testing tools for desktop applications:
- White framework
- Oracle Application Testing Suite
- Appium (no this is not a typo)
Windows Application Driver is a service to support Selenium-like UI Test Automation on Windows Applications. This service supports testing Universal Windows Platform (UWP), Windows Presentation Foundation (WPF), Windows Forms (WinForms) and Classic Windows (Win32) apps on Windows 10 PCs. The Windows Application Driver complies with the JSON Wire Protocol standard and some application management functionalities defined by Appium.
Winium.Desktop is a Selenium Remote WebDriver implementation for the automated testing of Windows applications based on WinFroms and WPF platforms.In the Why Winium? section of their website, it mentions that
You have Selenium WebDriver for testing web apps, and Appium for testing iOS and Android apps. And now you have Selenium-based tools for testing Windows apps as well. What are some of the benefits? As said by Appium:
You can write tests with your favorite dev tools using any WebDriver-compatible language, including:
- or Perl with the Selenium WebDriver API and language-specific client libraries.
You can use any testing framework.
Sounds like a good reason to me. If it sounds good to you as well, you can check it out on their GitHub site where it currently has over 282 stars.
Do you need to automate a thick client application like WPF, Silverlight, Win32 or WinForms? If so, then the White framework may be the automation framework for you.
White is an open-source library from Test Stack. Like CodedUI, it has a more narrow scope; it only targets desktop applications, not Web applications. Both CodedUI and White are based on UI Automation Library for Microsoft.
There aren’t many automation testing tools that handle software testing .NET applications, so this is a valuable tool for folks who need to test such technologies. It’s also easy to get started using White.
Need to test desktop Java applications?
It provides automated functional GUI testing for various types of applications. It is aimed at teams who want their automated tests to be written by test experts from the user perspective, without requiring any coding effort.
Jubula tests incorporate best practices from software development to ensure long-term maintainability of the automated tests.
I recently interviewed the product owner of Jubula, Alex Schladebeck, on Episode 240 of TestTalks.
Do you love using Python as your go-to language for everything, and also need to automate Windows desktop applications? If so, check out pywinauto.
It describes itself as a GUI automation library written in pure Python and well developed for Windows GUI. At its simplest, it allows you to send mouse and keyboard actions to dialogs and controls on both Windows and Linux, while more complex text-based actions are supported on Windows only thus far (Linux AT-SPI support is under development).
The latest release introduced MS UI Automation (UIA) support, which includes WinForms, WPF, Qt browsers, Store apps-based tests and more.
Oracle Application Testing Suite
Does your team do a lot of Oracle-based software development?
Oracle Application Testing Suite (OATS) contains a bunch of integrated products to help with Oracle Functional Testing for regression testing of Web applications and Oracle Load Testing for performance testing of your Oracle packaged solutions.
Oracle explains that its Application Testing Suite is a comprehensive, integrated testing solution that ensures the quality, scalability, and availability of your Web applications, Web Services, packaged Oracle Applications, and Oracle databases.
This integrated, full lifecycle solution enables you to define and manage your application testing process, validate application functionality, and ensure that your applications will perform under load. With Application Testing Suite, you can deploy your Web applications and Web Services in less time while maximizing the efficiency of your testing team.
Oracle Application Testing suite contains a bunch of integrated products to help with Oracle Functional Testing for regression testing of web applications and Oracle Load Testing for performance testing of your Oracle packaged solutions.
So if you need a tool to help test your regression and performance test your Oracle applications or databases OATS is a must-try tool.
SikuliX can help automate anything you see on the screen of your desktop computer running Windows, Mac or some Linux/Unix. SikuliX uses image recognition powered by OpenCV to identify and control GUI components.
A few years ago I spoke with the main developer and maintainer of SikuliX, Raimund Hocke, on Episode 40 of my TestTalks podcast. After speaking with Raimund I thought it would be helpful to create a quick video to demonstrate just how easy it is to get started with SikuliX.
FlaUI is a .NET library that helps with automated test scripts for Windows user interface applications (Win32, WinForms, WPF, Store Apps. FlaUI was developed because of one of the maintainers of TestStack.White found White’s codebase to be horrible to update and support.
If you are a C# SDET you might want to try FlaUI before White.
FlaUI currently has 709 stars on GitHub
AutoIt v3 is a freeware, BASIC-like scripting language designed for automating the Windows GUI and general scripting.
While it’s not the most robust of automated testing tools, many teams integrate AutoIt with Selenium to work around non-browser windows that appear in an automated test workflow.
ZAPTEST is one of those tools I’ve been hearing about for a while but never tried until I heard that it now offers a free edition. ZAPTEST can be used to create test automation against any GUI-based application. It also supports any environment, making it a very flexible solution if you're looking for cross operating system support.
If you’re looking for a full-blown desktop automation tool that also supports API testing, has a recorder, can be run in parallel and integrated with MicroFocus ALM, Rally or Jira, give the free version a try.
AirTest is an open-source test automation tool aimed at hard-to-automate applications like games.
No surprise, really, since one of the largest game companies in the world, NetEase, developed it.
For even more street cred, it was developed in conjunction with Google.
AirTest currently has over 4k stars on GitHub
You might be thinking — Appium? Isn't that just for mobile automation testing?
While that is one of its primary uses, the main contributor and the father of the modern Appium we all know and love Jonathan Lipps reminded me that Appium bundles WinAppDriver as well as Appium4Mac which can be used to automate Mac desktop applications!
Those are my top automation testing tools for desktop applications let me know if I missed your favorite one.