Test automation services has proven to increase the speed, quality, and efficiency of the software in many ways. Listed below are top 11 open source tools for your automation needs.
This is custom heading element
Selenium was originally developed by Jason Huggins in 2004 at ThoughtWorks. It is a software testing framework which can be used to test the web applications.
It provides driver to automate web applications across different browsers.
- Selenium reduces execution time since it supports parallel execution.
- Selenium supports different operating systems such as Windows, Linux, and Mac OS X.
- Selenium cannot be used to test the desktop based applications.
- Selenium provides less support for image testing.
- Selenium doesn’t have built in reporting facility.
Appium was originally developed by Dan Cuellar in 2011. It is a mobile automation testing framework. It supports native, hybrid, web application testing.
It allows testing the application on physical devices, emulator and simulator. It supports cross-platform application testing.
- Appium supports both Android and iOS. It translates all selenium commands into XCUITest (iOS) if the MAC OS version is greater than iOS 9.3 or UIAutomator (Android) depending on the device type.
- Does not support image comparisons.
- Some of the gesture supports are not available
- Appium does not support the android version older than 17.
Sikuli was introduced by Raimund Hocke (aka RaiMan) in 2011. It is an automation tool used to test the GUI using “Visual Image Match” method.
It identifies the image using Image Recognition. This tool is a preferred one when there is no access to internal source code of the application.
- Sikuli allows automating flash objects.
- Sikuli can automate window applications as well as web applications.
- Sikuli is not preferred when UI elements are constantly changing.
Katalon studio was developed by Katalon LLC. Its first public release was in 2016. It is an open source automation tool which supports web, Mobile application, and API Testing.
It is developed on top of the open source automation frameworks such as selenium and appium.
- Katalon studio supports scripting languages such as Groovy and Java.
- Execution test reports can be exported in various formats such as HTML, PDF…etc.
- Katalon has special feature called “Record and Playback”. That is, tool generates test script automatically by recording each web actions and capturing each object.
- Katalon studio supports multiple platforms such as Windows, Linux and Mac OS X.
- Katalon studio supports only Java and Groovy languages.
JUnit is an open source testing framework. As it name indicates, this framework is for performing unit test for small unit of code.
It identifies each test methods using @Test annotation. It provides assertions class for checking expected results.
JUnit can be easily integrated with Ant and Maven.
JUnit cannot do dependency testing.
TestNG is introduced by Cedric Beust. It is automation testing framework in which NG stands for “Next Generation”.
It provides a detailed report which provides information about passed, failed and skipped test case details.
This framework inspired from JUnit framework. This framework is better than JUnit framework.
- TestNG supports parallel execution.
- TestNG allows us to create dependent tests, prioritize tests and allows us to group the tests.
- With the help of @DataProvider annotation, data driven approach can be achieved through TestNG framework.
- TestNG supports only Java.
JMeter is an open source testing software which can be used to perform load and performance testing for web services, mobile and API.
This software can conduct load and performance test for many server types such as Web, database and mail.
- JMeter supports Record and Playback feature.
- JMeter run on multiple platforms since it is a pure Java desktop application.
- JMeter test results can be visualized using chart, table, log file and tree. Performance of various services can be analysed and measured using this software.
- JMeter doesn’t suites for desktop applications.
Robotium was introduced and developed by Renas Reda. It is an Android test automation framework which provides full support for native and hybrid applications.
Test scripts can be written using Java. It can be used to write functional, system and user acceptance test cases.
- It has simple API, so less time is required to write test cases.
- It can be easily integrated with Maven and ANT.
- Robotium can’t test flash components.
Robot framework was introduced and developed by Pekka Klarck. It is a generic automation testing framework for user acceptance testing and acceptance test driven development. It follows keyword driven approach.
- Robot framework is application and operating system independent.
- Robot framework test case can be written using natural language itself. A test report gets generated once the execution is complete. Reports are available as a HTML/XML format.
- Robot framework doesn’t support parallel execution directly.
Cucumber is testing framework based on Behaviour Driven Development (BDD). It uses a simple grammar defined by a language called “Gherkin” to define application behaviour. This framework is written using Ruby.
It writes its tests scenarios in Given/When/Then format. This scenario file is called feature file which is the entry point for any cucumber tests.
- Cucumber supports scripting languages like Java, Perl, PHP, Python and DotNet.
- Cucumber is available as a plugin in eclipse software.
- Cucumber framework supports only web applications.
Espresso is a testing framework for android to write reliable test cases for mobile application user interfaces.
This framework is mostly suites for white box automation test cases where the test can directly interact with the application under test implementation code. It has major three components.
The Grinder was originally developed by Paco Gómez and Peter Zadrozny. It is a Java-based load testing framework. Default scripting language for Grinder is Jython (Java implementation of python).
It also supports Java and Clojure scripting languages. This framework can be used for distributed load testing. It has two main components:
- Grinder Console- Controls agents and monitors results through GUI
- Grinder agents- Headless load generators.
Automation tools are compared by considering various metrics. JMeter and Grinder framework have been excluded from the comparison, since they are load testing frameworks. Refer the table: Table 1