Top Free Automation Tools for Testing Desktop Applications

Top Free Automation Tools for Testing Desktop Applications

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 11 free automation testing tools for desktop applications:

WinAppDriver

Windows Application Driver developed by Yousef Durr of Microsoft, it 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.

Winium

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:

  • 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 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 219 stars. 

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.

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 long-term maintainability of the automated tests. 

I recently interviewed the product owner of Jubula, Alex Schladebeck, on Episode 240 of TestTalks. 

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.  

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

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

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.

AutoIt Automation

AutoIt

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

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 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. It currently has more than 1,265 stars on GitHub.

For even more cred, it was developed in conjunction with Google. 

AirTest currenlty has 2,147 starts on GitHub

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!

Those are my top automation testing tools for desktop applications let me know if I missed your favorite one.

5comments
nando - March 7, 2019

Hi Joe, congrats and thanks a lot for this great post. It’s impressive, and definitely quite complete. However, we at The Cocktail are currently using UI Path, did you keep it out of the post intentionally for some reason? Thanks in advance!!

Reply
    Joe Colantonio - March 7, 2019

    Hi! Is UI Path Free or Opensource? If not that is why it is not on the list.

    Reply
      nando - March 8, 2019

      I thought so Joe, thanks!!

      Reply
David Luu - March 7, 2019

By the way, one could use AutoIt over Webdriver API via a tool like this: https://github.com/daluu/autoitdriverserver, to provide better integration with Selenium and use the same function/method calls (or APIs).

Following same implementation model, one could similarly adapt pywinauto to support WebDriver API with similar tool.

I similarly did a PoC for Sikuli: https://github.com/daluu/sikulidriverserver, but it’s not complete, the community is welcome to continue my work to provide a Selenium API for Sikuli.

Reply
Nikolay Advolodkin - April 1, 2019

Nice collection of tools Joe. Thanks for sharing

Reply
Click here to add a comment

Leave a comment: