I decided to create this small library with useful links and small captions for every open source testing automation tool I know or worked with. Hope it helps.
Automation tool name: Selenium IDE
Purpose: Functional UI test automation – web.
Official site: http://www.seleniumhq.org/projects/ide/
Supported platforms: Practically everywhere you could install Firefox.
Official Selenium IDE docs.
Learn Selenium IDE in 7 days.
Video tutorial for beginners.
Automation tool name: Selenium WebDriver
Purpose: Functional UI test automation – web.
Official site: http://www.seleniumhq.org/projects/webdriver/
Supported programming languages: C#, Java, Ruby, Perl, Python.
Supported platforms: Depends on the IDE and language, but it’s practically multi platform.
Description: Selenium is definitely “the big thing” in automation testing, when you are talking about UI web automation you are most likely talking about Selenium. It’s multi-platform, multi-language and it’s easily adjustable and extendable the way you want it. You could run your tests on almost any browser available (including Tor) and you can approach testing in much more “programmatic” manner. You could easily incorporate various programming “best practices” using various design patterns and OOP. View in links.
Automation tool name: Sikuli
Purpose: Functional UI automation testing.
Official site: http://www.sikuli.org/
Supported programming languages: Python
Supported platforms: Windows, Mac OS, Linux.
Description: Sikuli is a nice tool that’s multi-platform and could be used to automate almost every aspect of the workflow, speaking not only about web, but native functions of the operating system. It easy to use, written in Python, but it has one main disadvantage: it used image compare to execute its tests, which means tests are often flaky and hard to maintain.
Automation tool name: Appium
Purpose: Mobile functional testing.
Official site: http://appium.io/
Supported platforms: iOS, Android, Firefox OS
Description: Appium is a framework for mobile testing. The way tests are written in Appium might seem very familiar to Selenium tests, since the framework itself supports a subset of the JSON wire protocol and Appium clients which are an extension of the WebDriver clients.
Automation tool name: Robotium
Purpose: Android mobile functional testing.
Official site: http://robotium.com/
Supported programming languages: Java.
Supported platforms: Android
Description: Robotium is testing automation framework for automating Android application. It is used only in Java and it has really good integration with Eclipse and Android studio. The syntax slightly resembles selen-ish, you have an object that you initialize, similar to webdriver, on which you could execute specific actions, like find element by or some actions like click and send keys. Test could be executed in simulator as well as on real device. It has a recorder version, which might track your actions and repeat them.
Automation tool name: Protractor
Purpose: Testing automation for Angular JS apps.
Official site: https://angular.github.io/protractor/#/
Supported platforms: Multiplatform.
Description: Protractor is a really cool tool for testing Angular JS applications and so far the best to do so. Why is that? Because it’s created and supported by Angular’s creators – Google, for that same purpose. Why is testing Angular so tricky and different? Because normal events in other testing frameworks can not handle events that happen from within the Angular itself like dynamic loading of elements for example. The setup is pretty simple, it’s a npm package and it’s built over an instance of Webdriver JS, which means all the goodies from the JSON wire protocol are available in Protractor as well.
Automation tool name: Robot framework.
Purpose: BDD/ATDD testing.
Official site: http://robotframework.org/
Supported programming languages: Python, Jython, IronPython
Supported platforms: Platform independent.
Description: Robot framework is a framework written in Python, that could be used along with Selenium for testing web pages. The tool itself uses plain text commands and keyword on the base of which tests are generated and commands are executed.
Automation tool name: Calabash
Purpose: Acceptance tests for mobile devices.
Official site: http://calaba.sh/
Supported programming languages: Cucumber / Ruby
Supported platforms: Android, iOS
Description: Calabash is a framework that let’s you write acceptance tests with the cucumber syntax (the if-when-then statements). It could be used for automating iOS and Android applications.
There will be more coming in time.