In today's fast-paced digital landscape, Automating Testing Desktop Applications has become crucial to ensure seamless user experiences.
As software testers, we are fortunate to have many open-source tools for browser and API automation testing. However, identifying the right resources for desktop application automation can be challenging.
Have you ever wondered, “Which automation tools best suit desktop-based applications?” Look no further! We have compiled an up-to-date list of the top 17 free automation testing tools specifically designed for desktop applications, empowering you to boost efficiency and enhance product quality in 2023.
If that’s you, this post is for you.
In this post, you’ll learn:
- The top 17 free automation tools for testing desktop applications
- The pros and cons of each automation tool
- How these tools can help your desktop-based applications
WinAppDriver
Windows Application Driver, developed by Yousef Durr of Microsoft, is the Windows implementation of Appium to automate Windows applications.
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)
- 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.
Pros and Cons of WinAppDriver
PROS | CONS |
Takes advantage of the industry-standard WebDriver Protocol Developed by Microsoft | Not useful if you don’t have to automate Oracle applications |
UPDATE: Look like development on WinAppDriver has been paused. And based on the comments in the update, it looks like it may not be a good option going forward (thanks to Peter Thomas for letting me know about this).
Winium
Winium.Desktop is a Selenium Remote WebDriver implementation for the automated testing of Windows applications based on WinForms 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:
- Java,
- Objective-C
- JavaScript with Node.js (in promise, callback, or generator flavors),
- PHP,
- Python
- Ruby
- C#
- Clojure
- or Perl with the Selenium WebDriver API and language-specific client libraries.
You can also use it with 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 329 stars.
Pros and Cons of Winium
PROS | CONS |
| CAUTION: This project looks like it hasn't been updated in a long time. |
THE GUILD WANTS YOU!
If you've read this far, you know how important it is to stay updated with the latest in test automation, tooling, processes, and practices. One of the best ways is to become a TestGuild member.
White Framework
Do you need to automate a thick client application like WPF, Silverlight, Win32, or WinForms?
If so, then the White framework may be your automation framework.
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 test automation 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.
UPDATE: White has been DEPRECATED and is no longer actively maintained. Its replacement is FlaUI.
Cons of White Framework
CONS |
I only kept White in this list, so when folks google it, they will learn that it has been deprecated and should not be used going forward. |
Jubula
Need to test desktop Java applications? Jubula is an open-source tool for automating UI tests designed specifically for Java applications. It's also reasonably well-known in the Eclipse community.
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 the long-term maintainability of automated tests.
I recently interviewed the product owner of Jubula, Alex Schladebeck, on Episode 240 of my TestGuild Automation Podcast:
Pros and Cons of Jubula
PROS | CONS |
1. Good for Java Applications automation 2. It takes a no-coding approach to write tests. 3. This can help to save time and improve the readability of your test. | 1. It Doesn't support running tests in headless mode 2. Only supports Java RCP/SWT/JAVAFX/Swing applications |
Pywinauto
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.
Pros and Cons of Pywinauto
PROS | CONS |
Since this is a Python library, it is great for testers already using Python. I love Python, so I'm calling it a pro, lol. | It uses Python. Believe it or not, there are some weirdos out there that don't like Python.
|
Oracle Application Testing Suite
Does your team do a lot of Oracle-based software development?
Oracle Application Testing Suite (OATS) contains many 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 the 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.
Pros and Cons of Oracle Application Testing Suite
PROS | CONS |
If you need a tool to help test your regression and performance test your Oracle applications or databases, OATS is a must-try tool. | Not useful if you don’t have to automate Oracle applications.
|
SikuliX
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.
Pros and Cons of SkuliX
PROS | CONS |
Good option if you have an application that needs to be tested that has controls that aren’t recognized by other solutions | Image-based automation is tricky and often time unreliable. I would use this approach only as a last resort.
|
FlaUI
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 1k stars on GitHub.
Pros and Cons of FlaUI
PROS | CONS |
A good option for automation Window interfaces. | 1. No multi-language support – only supports writing test in C#According to one user comment on GitHub, “We had to create a lot of extensions for it to be reliable. 2. There is a ton of missing features, and it doesn't have Retry mechanisms. |
AutoIt
AutoIt v3 is a freeware, BASIC-like scripting language designed for automating the Windows GUI and general scripting.
When I originally wrote this post, I said that this is not the most robust of automated test management tools; many teams integrate AutoIt with Selenium to work around non-browser windows that appear in an automated test workflow. However, Mohamed Amine M’Barki told me that I probably didn’t use it fully. It does as much if more than many of the tools listed in this post.
Here is a list of features Mohamed shared with me that AutoIt can help automate, like desktop automation, Excel & Word, API testing, and more.
Pros and Cons of Autolt
PROS | CONS |
| Doesn't support Java
|
ZAPTEST
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.
Pros and Cons of ZAPTEST
PROS | CONS |
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 integrates with MicroFocus ALM, Rally, or Jira, give the free version a try. | Not open-sourced
|
AirTest
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
Pros and Cons of Airtest
PROS | CONS |
Write Once, Run Anywhere: Airtest provides cross-platform APIs | Doesn’t seem to have worldwide adoption yet
|
Appium
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!
Pros and Cons of Appium
PROS | CONS |
Most testers are already familiar with Appium | Some functionality relies on WinAppDriver, and as I mentioned earlier, this project is currently on hold by Microsoft.
|
Robot Framework
Robot Framework is an all-purpose open-source automation framework. It can be used to test not only web applications but also has plugins for automating:
- Confluent Kafka,
- library for testing JavaFX applications
- IBM Mainframe 3270,
- SSH
- REST
- SOAP
- Java FX applications
- Java Web Start applications
- Library for testing the SAPGUI client
- MQTT library for testing Java applications with Swing GUI
- Library for automating Windows GUI.
Pros and Cons of Robot Framework
PROS | CONS |
1. Easy to install and learn 2. Supports lots of different technologies 3. Has a very active community | 1. Some users complaining about refactoring and debugging capabilities since it’s doesn't support popular IDEs
|
AltUnity Tester – UI Test Automation
Need to automate desktop unity applications?
AltUnity Test is an open-source UI test automation solution for Unity teams. You can use it to help you inspect and programmatically control the objects of your Unity-based games and apps. You can also run your tests on real devices or inside the Unity Editor.
Nexial
I actually never heard of Nexial until someone mentioned it in the comments.
It allows you to automate for web (selenium), desktop, database, API, and much more using a keyword-driven approach. Give it a try and let me know what you think.
Karate
Karate has come a long way since I first reviewed it as an API testing tool back in 2017.
Not only does it support API, Web, Performance Testing, but it can now handle desktop automation as well!
The creator of Karate Peter Thomas, pointed me to the Karate Robot Windows install guide that unlocks this feature. Once installed and configured, you will be able to automate Windows-based applications.
RobotJs
Do you love using Node.js for all your software development? If so robotjs might be the perfect desktop automation tool. As far as I can tell, it looks like the only Node.js first Desktop Automation Library.
Pros and Cons of RobotJs
PROS | CONS |
1. Easy to use 2. Cross Platform | 1. Currently can’t take screenshots (functionality coming soon) |
nutjs
nut.js is a desktop automation and testing framework for Node.js that has been developed since 2018.
It’s fully prebuilt and works across Windows, Linux, and macOS (both Intel and Apple Silicon).
It allows you to control your mouse, keyboard, and clipboard using JavaScript/TypeScript and comes with a plugin system that allows you to perform on-screen image and/or text searches. There’s also an add-on to easily run OCR on your screen.
Did I miss your favorite Desktop Automation Tool?
Those are my top automation testing tools for desktop applications. Let me know if I missed your favorite one.