If you’re anything like me, you’re always on the lookout for a new tool or library that can help you with your automation efforts. It’s actually a good New Year’s exercise to find what is popular and determine whether there are any skill gaps I should try and fill during the upcoming year.
One place I like to check for this info is GitHub.
As of the time of this writing, these are the most popular test automation tools and libraries on GitHub (according to stars) that I could find:
EarlGrey (3,996 Stars)
If you’re testing iOS applications you might want to check out EarlGrey.
EarlGrey is a native iOS UI automation test framework, which allows you to write clear, crisp tests.
The EarlGrey framework also comes with enhanced synchronization features that allow your tests to automatically synchronize with things like UI, network requests, and various queues.
You can also manually implement customized timings if you wish.
EarlGrey’s synchronization features are awesome because they help to ensure that your UI is in a steady state before actions are performed. This will increase your tests’ stability and make them highly repeatable.
EarlGrey works in conjunction with the XCTest framework and integrates with Xcode’s Test Navigator so you can run tests directly from Xcode or the command line (using Xcodebuild).
WebDriverIO (3,620 Stars)
WebDriverIO is a browser automation module for Node.JS that makes it possible to write super easy Selenium tests in your favorite BDD/TDD test framework that will either run locally or in the Cloud using Sauce Labs, BrowserStack or TestingBot.
I like how Kevin Lamping in TestTalks episode 179 describes the chief benefit of using WebDriverIO. He describes it as being like the SeleniumJS binding on steroids!
WebDriverIO is agnostic with regard to the test framework you want to use, so you can leverage tools like Cucumber, Jasmine, and Mocha+Chai.
Robot Framework (1.9k Stars)
The Robot Framework is an open-source test automation framework developed by Pekka Klarck that is based on Python and uses a keyword-driven approach to test automation.
Robot framework also supports Jython (Java) and IronPython (.NET).
If your team is made up of mostly testers, Robot Framework might be a great option for you to check out.
Macaca (1.8k Stars)
Macaca (Portuguese for monkey ☺) describes itself as an open-source automation test solution for native, hybrid, mobile Web and Web applications on mobile and desktop platforms.
What’s cool about Macaca is that it is cross-platform, which means you can use the same API to write test scripts, and the same test scripts to test your apps running on devices such as iOS, Android or even desktops.
Another nice feature of Macaca is that it doesn't limit what languages you write your automated tests in.
Detox (1.6k Stars)
Detox describes itself as gray box end-to-end testing and an automation library for mobile apps. This is different than many other automated tools. Detox is also different in that it can run in the same process, allowing it to have access to memory and the ability to monitor the execution process.
This means it allows you to:
• Detect what is occurring in the process
• Find network request issues
• Know if the main thread is idle
• Know when an animation has ended
Also, since Detox does not use the Web it doesn’t need to leverage Selenium WebDriver.
If you’re testing React native apps then, you should definitely check out Detox.
UI AutoMonkey (1.3k Stars)
Unlike some of the other libraries and tools on this list, UI AutoMonkey was made for creating simple stress tests–not functional tests–against iOS apps.
It’s pretty cool because you can place a load on your app by emulating multiple users tapping, swiping, device rotating, locking and unlocking gestures on your ISO device.
AutoMonkey uses the UI Automation and instruments that are available with Apple’s dev toolkit.
If you need to perform performance testing against your iOS application, UI AutoMonkey might be the tool for you.
Gauge (969 Stars)
I first heard of Gauge at the 2017 Automation Guild online conference. Prateek Bahit gave a hands-on demo on how to create a cross-browser testing framework using Gauge and Selenium.
Gauge also works with Selenium WebDriver. If you're in the testing industry you’re undoubtedly familiar with WebDriver; it's a standard, browser-driven library that lots of folks use for testing web applications.
Hound (893 Stars)
Hound is described as an Elixir library for writing integration tests and browser automation. Hound leverages Selenium WebDriver for interacting with the Web browser as a real user. It also works with PhantomJs/GhostDriver as well as ChromeDriver.
You can also use Hound as part of ExUnit Tests.
If you want a test automation tool that fits into your developers’ Elixir ecosystem, you might want to give Hound a try.
OWTF (696 Stars)
For you pen testers out there, it can sometimes be hard to find tools that meet their requirement.
That’s where OWTF comes in.
Offensive Web Testing Framework (OWTF), is a framework which tries to unite great tools and make pen testing more efficient.
Its main purpose is to automate many of the manual and boring actions performed in pen testing.
If you’re involved with pen testing in any way definitely check out OWTF.
FluentLenium (598 Stars)
FluentLenium calls itself a website automation framework that extends Selenium to help you write more reliable and resilient UI functional tests.
You can leverage FluentLenium using JUnit, Spock, Cucumber, TestNG or as a standalone option.
If you’re using React, no worries–this framework is React- ready.
If you’re looking for a way to make your automation framework more reliable, you might want to pull in this library and give it a try.
Automation Guild Online Conference & Community
If you want to learn more about what tools and libraries some of the top experts are using in the test automation field, don’t miss the 2018 Automation Guild online conference. We’ll have Meaghan Lewis from GitHub joining us for our Day Two roundtable discussions.