A comprehensive curated list of Java test automation frameworks, tools, libraries and software to help software engineers easily bootstrap test automation on Java.
Table of content:
- xUnit frameworks
- TDD \ ATTD \ BDD
- Model-Based Testing
- Code Analysis
- Web UI test automation
- Mobile test automation
- Windows UI test automation
- Unix \ Linux UI test automation
- MacOS UI test automation
- Server side test automation
- Virtual environments
- Performance & stress & load
- Security checking
- Build Tools
- Continuous Integration
- Reporting
- Documentation generation
- Editors, IDE and consoles
- ORM frameworks and libraries
- Useful libs
Also:
- tools
- JBehave - A framework for Behaviour-Driven Development (BDD). BDD is an evolution of test-driven development (TDD) and acceptance-test driven design, and is intended to make these practices more accessible and intuitive to newcomers and experts alike.
- Cucumber-JVM - A pure Java implementation of Cucumber that supports the most popular programming languages for the JVM.
- easyb - A behavior driven development framework for the Java platform. By using a specification based Domain Specific Language, easyb aims to enable executable, yet readable documentation.
- Robot Framework - A generic test automation framework for acceptance testing and acceptance test-driven development (ATDD).
- extensions
- cucumber-report-db - Stores results of BDD tests with Cucumber-JVM in a database and provides reporting capabilities.
- GraphWalker - A framework for Model-Based Testing. The tool reads models in various formats like graphml, dot or json, and then generates tests from the models.
- SonarQube - Open source project to manage code quality.
- libraries
- Selenium - Portable software testing framework for web applications.
- SikuliX - SikuliX automates anything you see on the screen of your desktop computer running Windows, Mac or some Linux/Unix. It uses image recognition powered by OpenCV to identify and control GUI components. This is handy in cases when there is no easy access to a GUI's internals or the source code of the application or web page you want to act on.
- frameworks and wrappers
- Selenide - Concise API around Selenium to write stable and readable UI tests.
- Serenity BDD (Thucydides) - An innovative open source library that helps you write more effective automated acceptance tests, and uses these acceptance tests to generates rich documentation and reports about your product and project.
- htmlelements - A Java framework providing easy-to-use way of interaction with web-page elements in web-page tests.
- atlassian-selenium - An open-source (BSD) project that aims at facilitating development of functional tests in Selenium/WebDriver libraries.
- stevia - Open Source QA Automation Testing Framework by Persado
- darcy - An open source Java 8 framework for modeling user interfaces as page objects with a declarative, automation-library-agnostic DSL
- Satisfy - An open source Java framework based on Thucydides + Jbehave. Supports to work with WebUI, SOAP, REST, emails, files and generate random data out of the box.
- extensions
- BrowserMob Proxy - Is a simple utility that makes it easy to capture performance data from browsers, typically written using automation toolkits such as Selenium and Watir.
- Selenium-Grid-Extras - Simplify the management of the Selenium Grid Nodes and stabilize said nodes by cleaning up the test environment after the build has been completed
- Selenium Grid Extensions - Extend Selenium grid with extra functionality. Execute Sikuli tests in combination with Selenium.
- Appium - An open source test automation framework for use with native, hybrid and mobile web apps. It drives iOS and Android apps using the WebDriver protocol.
- Calabash - A cross-platform test automation framework for Android and iOS native and hybrid applications. Calabash’s easy-to-understand syntax enables even non-technical people to create and execute automated acceptance tests for apps on both of these mobile platforms.
- Robotium - An Android test automation framework that fully supports native and hybrid applications. Robotium makes it easy to write powerful and robust automatic black-box UI tests for Android applications. With the support of Robotium, test case developers can write function, system and user acceptance test scenarios, spanning multiple Android activities.
- UIautomator - Provides an efficient way to test UIs. It creates automated functional test cases that can be executed against apps on real Android devices and emulators. It includes a viewer, which is a GUI tool to scan and analyze the UI components of an Android app.
- Espresso - A pretty new test automation framework that got open-sourced just last year, making it available for developers and testers to hammer out their UIs. Espresso has an API that is small, predictable, easy to learn and built on top of the Android instrumentation framework. You can quickly write concise and reliable Android UI tests with it.
- SikuliX - SikuliX automates anything you see on the screen of your desktop computer running Windows, Mac or some Linux/Unix. It uses image recognition powered by OpenCV to identify and control GUI components. This is handy in cases when there is no easy access to a GUI's internals or the source code of the application or web page you want to act on.
- SikuliX - SikuliX automates anything you see on the screen of your desktop computer running Windows, Mac or some Linux/Unix. It uses image recognition powered by OpenCV to identify and control GUI components. This is handy in cases when there is no easy access to a GUI's internals or the source code of the application or web page you want to act on.
- SikuliX - SikuliX automates anything you see on the screen of your desktop computer running Windows, Mac or some Linux/Unix. It uses image recognition powered by OpenCV to identify and control GUI components. This is handy in cases when there is no easy access to a GUI's internals or the source code of the application or web page you want to act on.
- Citrus - Test framework written in Java that is able to create fully automated end-to-end use case tests for enterprise SOA applications. Citrus simulates surrounding interface partners supporting a huge set of different transports and protocols like HTTP, JMS, TCP/IP, FTP, SOAP, XML and JSON.
- Apache JMeter - Functional testing and performance measurements.
- The Grinder - Load testing framework that makes it easy to run a distributed test using many load injector machines.
- Lightning - Enable JMeter performance testing integration with Continuous Integration infrastructure.
- Apache Ant - Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications.
- Apache Maven - Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.
- Gradle - Gradle is an open source build automation system. Gradle can automate the building, testing, publishing, deployment and more of software packages or other types of projects such as generated static websites, generated documentation or indeed anything else.
- Jenkins - Jenkins is an award-winning application that monitors executions of repeated jobs, such as building a software project or jobs run by cron.
- TeamCity - Powerful and user-friendly Continuous Integration and Deployment server that works out of the box.
- ExtentReports - HTML reporting library for .NET and Java which is extremely easy to use and creates beautiful execution reports. It shows test and step summary, test steps and status in a toggle view for quick analysis.
- ReportNG - ReportNG is a simple HTML reporting plug-in for the TestNG unit-testing framework.
- Allure - Open-source framework designed to create test execution reports clear to everyone in the team.
- IntelliJ IDEA - A free and open-source IDE for Java, Groovy, Scala and Android development.
- IntelliJ IDEA Selenium plugin - Plugin for IntelliJ Idea to simplify creation of web tests using selenium
- Eclipse - Eclipse is famous for our Java Integrated Development Environment (IDE), C/C++ IDE and PHP IDE.
- NetBeans - NetBeans IDE is the official IDE for Java 8. With its editors, code analyzers, and converters, you can quickly and smoothly upgrade your applications to use new Java 8 language constructs, such as lambdas, functional operations, and method references.
- Hibernate - Hibernate ORM enables developers to more easily write applications whose data outlives the application process. As an Object/Relational Mapping (ORM) framework, Hibernate is concerned with data persistence as it applies to relational databases (via JDBC).
- Morphia - Morphia is a lightweight type-safe library for mapping Java objects to/from MongoDB. Morphia provides a typesafe, and fluent Query API support with (runtime) validation. Morphia uses annotations so there are no XML files to manage or update. Morphia should feel very comfortable for any developer with JPA experience.
- AspectJ - Seamless aspect-oriented extension to the Java. AspectJ enables clean modularization of crosscutting concerns, such as error checking and handling, synchronization, context-sensitive behavior, performance optimizations, monitoring and logging, debugging support, and multi-object protocols.
- aShot - WebDriver Screenshot utility. Take screenshots, crop, prettify, compare.
- rest-assured - Testing and validating REST services in Java is harder than in dynamic languages such as Ruby and Groovy. REST Assured brings the simplicity of using these languages into the Java domain.
- WireMock is a flexible library for stubbing and mocking web services. Unlike general purpose mocking tools it works by creating an actual HTTP server that your code under test can connect to as it would a real web service.
- MockServer can be used for mocking any system you integrate with via HTTP or HTTPS (i.e. services, web sites, etc).
- automated-testing.info - Test automation community
- atinfo.github.io/at.info-knowledge-base - Knowledge base for test automation examples on different tools and technologies
- selenium-simplified - AUTOMATED BROWSER TESTING WITH SELENIUM 2 WEBDRIVER – MADE SIMPLE
- python test automation
- java test automation
- ruby test automation
- c# test automation
- php test automation
- javascript test automation
- test automation and software testing as services
Your contributions are always welcome!