Top Free Automation Tools for Testing Desktop Applications (2022)

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

INDEX
WinAppDriver
Winium
White Framework
Jubula
Pywinauto
Oracle Application Testing Suite
SikuliX
FlaUI
AutoIt
ZAPTEST
AirTest
Appium
Robot Framework
Nexial
Karate
RoboJs
Did I miss your favorite Desktop Automation Tool?

Get FREE Training

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 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 and Cons of Winium

PROS

CONS

  1. Support multiple languages 
  2. Uses the tried and tested WebDriver API that most tests already know

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

Jubula Logo

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

 


Work With Me

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

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 Automation

 

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

  1. Easy to use syntax
  2. Support COM

Doesn't support Java

 

ZAPTEST

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

Join the Guild for FREE!

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

Testing Automation - learn robot framework in 5 minutes

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)


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.

Partner With TestGuild!

    {"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}
    DesktopApplications Automation Testing Tools

    Must See TestResults.io Product Review

    Posted on 11/21/2022

    In this post, we'll look at TestResults.io for a product review. When creating ...

    Unlocking end-to-end testing for all with mabl

    Posted on 09/27/2022

    A recent *study showed that 75% of organizations use a combination of manual ...

    AI Powered API Testing (Meet Loadmill)

    Posted on 09/21/2022

    I just learned of a great tool (Loadmill) to help automated API test ...