Top Free Automation Tools for Testing Desktop Applications (2021)

Automation Testing Published on:
DesktopApplications Automation Testing Tools

As a testing community we have been spoiled with a bunch of open source automation testing tools for browser and API automation testing, but what about tools for desktop application automation?

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 15 free automation testing tools for desktop applications updated for 2021. (Originally posted in 2019)

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), 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.

 

Pros
 
  • Takes advantage of the industry-standard WebDriver Protocol
  • Developed by Microsoft
Cons
 
  • Development has been put on hold
UPDATE: Look like development on WinAppDriver has been paused and based on the comments in the update looks like it may not be a good option going forward (thanks Peter Thomas for letting me know about this).


Winium Logo

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:

  • Support multiple languages 
  • Uses the tried and trie WebDriver API that most tests already know

Cons:

  • CAUTION: This project looks like it hasn't been updated in a long time.

The Guild Wants YOU

Joe Super Hero Point 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. Join now at no cost!

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 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.

UPDATE: White has been DEPRECATED and is no longer actively maintained. Its replacement is FlaUI.

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 Logo

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 the automated tests. 

I recently interviewed the product owner of Jubula, Alex Schladebeck, on Episode 240 of my TestGuild Automation Podcast: 

Pros

  • Good for Java Applications automation
  • It takes a no-coding approach to write tests. This can help to save time and improve the readability of your test.

Cons

  • Doesn't support running tests in headless mode
  • Ony 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
  • Since this is a Python library it is great for testers already using Python
  • I love Python so I'm calling that a pro lol
Cons
  • 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 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 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
  • If you need a tool to help test your regression and performance test your Oracle applications or databases OATS is a must-try tool.
Cons
  • 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
  • Good option if you have an application that needs to be tested that has controls that aren’t recognized by other solutions
Cons
  • 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
  • A good option for automation Window interfaces
Cons
  • No multi-language support – only supports writing test in C#
  • According to one user comment in GitHub “We had to create a lot of extensions for it to be reliable. There is a ton of missing features and it doesn't have Retry mechanisms”
AutoIt Automation

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 testing 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
  • Easy to use syntax
  • Support COM
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
  • 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.
Cons
  • Not open-sourced
AirTest Automation Testing Session

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
  • Write Once, Run Anywhere: Airtest provides cross-platform APIs
Cons
  • 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
  • Most testers are already familiar with Appium
Cons
  • 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
  • Easy to install and learn
  • Supports lots of different technologies
  • Has a very active community
Cons
  • 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 solutions 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, and much more but I also 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.

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.

    DesktopApplications Automation Testing Tools