Blog > DevSecOps > 50 Best Integration Testing Tools 50 Best Integration Testing Tools Testing the applications you create is a necessary part of writing code. Finding the right tools to perform different testing functions can be difficult. One test may be needed for email functions, while another for Android. Multiple languages may be employed, requiring more intricate and advanced testing. Integration testing is a valuable component of the DevOps lifecycle, and there are a variety of tools to help you carry out and automate those tests. Ensuring that modules integrate properly is necessary for releasing fully functional, seamless products to the market efficiently. Coupled with a comprehensive security solution like Threat Stack’s Cloud Security Platform®, integration testing tools help you deliver stable, reliable apps. They’re essential tools for your DevOps arsenal. (Looking for SecOps tools? Learn about the three homegrown SecOps tools used by the Threat Stack team.) How Cloud-Native has Changed Application Security Watch Webinar In order to aid developers in finding the right solution, we spoke with some experts in the field and compiled a list of 50 integration testing tools. These tests are not ranked, but are separated into a few categories: By programming language: Testing tools that are only available in a single popular language (Java, PHP, JavaScript, etc.) are in their own language category. Rare languages or languages with fewer tests: There are several tests on our list that are from more rare languages (e.g. CoffeeScript). These tools are grouped together. Tests that offer multiple languages: There are several tests on our list that have been recreated in multiple programming languages and are in a separate category. Java Integration Testing Tools 1. DBUnit Creator: DBUnit Language: Java DBUnit is an extension of JUnit essentially made for database heavy project testing. One of the more popular capabilities is to put a database into a known state in-between tests. Some of the highlights of this integration tester are: The ability to work with large sets of data Importing and exporting full databases Tons of supporting documentation on SourceForge 2. Greenmail Creator: IceGreen Language: Java Greenmail is a group of email servers created for programmers to run tests on. The servers support SMTP, POP3 and IMAP. Greenmail can be used in a number of different scenarios, including: Testing email sending code Testing retrieving code Providing a mock server for development 3. H2 Database @h2database Creator: H2 Language: Java H2 Database Engine is one of many open source testing tools. It’s known as one of the faster database engines available; as well as having some hefty security. Some of the differentiators of H2 are: Incredibly low memory. The tool takes about 2MB 3 supported connection modes (embedded, server, mixed) Quickstart guides and detailed documentation on a separate website 4. JMockit1 Creator: JMockit Language: Java With more than 1700 comments and 300 stars, JMockit1 is a popular Java testing tool on GitHub. The regular updates continue with multiple versions being released every year. Some of the features include: “Out-of-container integration testing for Java EE and Spring-based apps” Code coverage tool Ability to create fake implementations 5. JUnit 5 @junitteam Creator: JUnit Language: Java JUnit 5 is one of the newest JUnit testing tools. This version was successfully crowdfunded on Indiegogo. There are modules that run on Java 8 or higher (although you can still test code from previous versions). A few of the features include: The ability to migrate from JUnit 4 and Jupiter Can function as an extension model for JUnit Jupiter Works with other testing tools by allowing them to plugin to the infrastructure 6. Embedded-redis Creator: Krzysztof Styrc Language: Java Most of the integration testing tools on our list are created by companies, or developers within those organizations. Embedded-redis is one of the few published specifically by developers for developers. Here are a few points as to what it does: Provides a redis embedded server to test integrations Multiple use cases as easy as a copy/paste run code Easily retrieve a full list of ports in the cluster 7. Mockito @MockitoJava Creator: Mockito Language: Java Mockito is a fun-themed testing tool recently voted the “best mocking framework for java” by the StackOverflow community. It’s clearly one of the more popular tools, but not just it’s fun name and fancy site. Some of the highlights include: In the top 10 Java libraries (not just integration testing tools) Mockito gives the ability to “mock creation, verification and stubbing“ Extensions with other tools (JUnit Jupiter, JUnit 5) 8. REST-Assured @johanhaleby Creator: Rest Assured Language: Java Representational State Transfer or REST is an architectural style commonly used in developing web services. It’s particularly hard to test REST services in Java, which is why this tool was created. Here are some features of this tool: Scala support is available Troubleshooting docs for dealing with issues (like working with different Java variations) Directions for non Maven users 9. Android-screenshot-lib @rtyley Creator: Roberto Tyley Language: Java If you’re a developer and still have trouble understanding the functions and usage of some of these tests, android-screenshot-lib tries to make things clear via illustration. The system is made up of a paparazzo & celebrity. The former takes images when the latter asks for them. Here’s what this testing tool offers: Capture screenshots from an Android device Slow image capture The app is the “celebrity” and tells the testing tool to take screenshots 10. Spock @spockframework Creator: Spock Language: Java Spock is a framework for testing Java (and Groovy) applications. According to the site, this testing tool “is compatible with most IDEs, build tools, and continuous integration servers.” Obviously a play on sci-fi culture, it also has some fun theming thrown in to make things interesting. Some of what Spock can do includes: Detailed breakdowns of definitions to help you understand the lingo Not known for speed, but more information is given from tests than some other frameworks Super easy mocking and stubbing 11. Spring Test @springboot Creator: Spring Language: Java Spring Test offers various annotations and utilities to assist in testing a web application. This tool offers test support using two modules; the spring boot test has core items, and the spring boot test auto figure supports test auto-configuration. A lot of developers use the spring boot starter tests that imports all the spring tests modules and JUnit, Hamcrest, AssertJ, and various other important libraries A few of the key features of Spring Test include: Uses the dependency injection which enables the code easier for unit testing Allows you to mock objects rather than actual dependencies Has the test configuration for using an inner test class for customizing the primary configuration. 12. TestNG @tngtech Creator: TNG Language: Java NUnit and JUnit inspired this testing framework. However, it has new functions which enable it to be stronger and simpler to use. TestNG is made for covering all test categories such as functional, unit, integration, end-to-end and more. Here’s a breakdown of some TestNG features: Default JDK uses for logging and runtime Offers support for the parameters Strong execution model 13. Arquillian-core @arquillian_org Creator: Arquillian Language: Java Arquillan is highly extensible and innovative testing software for JVM which allows the developers to create easily functional and acceptance tests that have an automatic configuration for the Java middleware. This tool brings tests to runtime and saves you the headache of it. Available features of Arquillian: Integrates with similar testing tools Allows launching of tests using present IDE, Maven, and Ant test plugins Handles framework initialization JavaScript Integration Testing Tools 14. Hound Creator: Akash Manohar Language: JavaScript Hound is used in the writing of integration tools and browser automation. This software tool has a number of features that make it ideal for the task at hand. Some of the features that Hound includes: Implementation of WebDriver Wire Protocol Anchors JavaScript-heavy applications Supports Chrome Driver, Selenium (Chrome, Firefox) and PhantomJs Can run several browser sessions in quick succession 15. Ember-data-factory-guy Creator: Daniel Sudol Language: JavaScript This is one of the most amazing integration tools on our list. It has made the testing process simpler. Ember Data factory guy makes your process efficient and tests readable. Some key points of this tool include: Uses ember-data No need to add files to come up with model relationships You can easily push models to their respective stores 16. The-book @dwyl Creator: Dwyl Language: JavaScript This is a great software tool for developing applications. Users are expected to have a great experience using it. App developers can enjoy coming up with beautiful and robust applications. It boasts of several important features that application developers can take advantage of. Available features of The-book: User-friendly Compatible with JavaScript Easier creation of web apps 17. TESSY @hitex_ Creator: Hitex Language: JavaScript TESSY does computerized dynamic unit/module and incorporation testing of embedded software. It also determines accurate code coverage. This integration testing is very vital in certifications. Tessy has some awesome features, including: Variant testing Fault injection Generates tests through value combination Imports and exports data to and from Excel Develops test documentation 18. IBM Rational Integration Tester @IBM Creator: IBM Language: JavaScript IBM Rational Integration Tester is used in the creation, modification and running service and performance tests. The components of IBM Rational Integration Tester are installed by the help of a Rational Test Workbench. In addition, this tool will help you create tests for business integration processes and SOA messaging. Features of the Rational Integration Tester include: Creates virtual services and removes test dependencies Enables early testing Provides virtualized test surrounding Supports various steps of test development 19. Jasmine @pivotal Creator: Pivotal Labs Language: JavaScript This is used to test JavaScript codes. This tool does not rely on JavaScript frameworks. Jasmine does not need a DOM. It comes with a clean syntax for easier writing of tests. Available features from Jasmine: Does not have any external dependencies It has batteries that provide enough power to test JavaScript code It runs all browser and Node tests using a similar framework 20. Core Components @NitorCreations Creator: Nitor Creations Language: JavaScript These integration tools serve a wide variety of functions. For instance, the WrappingParameterizedRunner runs parameterized tests while the NestedRunner runs plain and old Java Classes found in the best configurations. Available features of Core Components include: Supports the packaging of integration tools Controls how tests are distributed Generates standardized XML reports 21. Nightwatchjs @nightwatchjs Creator: Nightwatch Language: JavaScript Nightwatch is one of the most reliable integration tools considering the amount of work it does. It allows the user to carry out a complete website and web application testing. This software also comes in handy during integration testing. Available features for this tool: Works with WebDriver friendly servers Can support GeckoDriver, ChromeDriver and Selenium Standalone server Is supported with Node.js 22. Cavy @pixielabs Creator: Pixie Labs Language: JavaScript Cavy works in your live app while operating on a device such as iOS or Android simulator. It comes up with functions which have the capability of not only referring to but also simulating actions on nested components in your app. Benefits to expect from Cavy: Runs inside an application A reliable cross-platform software tool Provides results to your console 23. Protractor @ProtractorTest Creator: Protractor Language: JavaScript (Angular and AngularJS) The protractor is the ideal integration tool for not only Angular but also AngularJS Apps. It conducts several tests against applications that operate on real browsers to interact with it just like a normal user would. Features of Protractor include: Built on WebDriverJS, then utilizes browser unique drivers and native events to work with applications just like a normal user would Supports unique angular strategies, that enables you to carry out tests on Angular elements effortlessly No need to add waits or sleep on your test PHP Integration Testing Tools 24. TestSwarm @testswarm Creator: jQuery Language: PHP TestSwarm is a tool used to run the JQuery Javascript Library. It was created by John Resig but is now run by the JQuery Foundation. Testswarm has not undergone a lot of development although it is still used in many environments. Some of TestSwarm’s benefits include: It simplifies the process of running JavaScript in multiple browsers You can open multiple clients on one browser or on different browsers The tool consistently delivers reliable results even when there are browser issues 25. Integrated @laracasts Creator: Laracasts Language: PHP Integrated is a simple testing tool with PHPUnit. Most of it is now run under the Laravel Core. Integrated has been included under the Laravel extension since Laravel released Laravel 5. Integrated has a few benefits, including: It supports many testing forms It is easy to learn and use Integration will assist you in testing your APIs 26. TestDummy @laracasts Creator: Laracasts Language: PHP TestDummy is an intuitive tool for generating test data for integration testing. The new version of TestDummy is easy to use. TestDummy has a few unique features, including: It allows for quick setup of test data It makes it easier for you to define relationships with pivot tables It has its own integrated Faker factory that provides random data for your various factories You can use TestDummy to automatically generate your relationship models 27. Laravel Creator: Marcel Pociot Language: PHP Laravel TestTools is basically a chrome extension that allows you to use Laravel TestTools to run tests. It was based on the assertion that most people don’t actually use tests to run projects. Adding Laravel TestTools as a chrome extension makes it easier for people to run tests. Available features from Laravel: It contains the “Integrated” package which makes testing faster and easier The Laravel menu contains some incredible faker options The software is free Python Integration Testing Tools 28. Buildbot Creator: Buildbot Language: Python Buildbot is an integration framework built by Brian Warner and is now maintained by the Bortherders. The general feeling among most users is that Buildbot is somewhat difficult to understand. However, it becomes really easy to understand and use once you get the hang of it. BuildBot benefits include: Different builders can run on different workers depending on your configuration You can configure builders to perform different tasks depending on the ultimate goal You can use one or more schedulers depending on the setup and the purpose of your build 29. Allure Python Creator: Allure Framework Language: Python This program contains python-based test frameworks that run on the Allure Framework. The Allure framework provides a basis for the test frameworks to give clear and concise test results. Here are a few of Allure Python’s testing features: The program gives a clear list of defects that were revealed during the test The clear graphs provide a vivid picture of the results after a test The results contain supplementary data that gives you a full picture of the test results 30. Ducktape @confluentinc Creator: Confluent Language: Python Ducktape contains systems for running performance and integration tests. Testing distributed systems can prove to be a difficult task. It can sometimes require multiple tools to perform a successful test. This library puts all the tools together and provides one software for distribution systems testing. Ducktape’s benefits include: Default isolation of systems which provides for thorough testing It provides an all-in-one tool for testing distributed systems It presents results in an easy to understand manner 31. Django-Jenkins Creator: Mikhail Podgurskiy Language: Python There are multiple ways for you to ensure continuous integration with a django project. However, most of these ways require a lot of configuration time and setup time. Some of them might even require you to make changes to your project. This program provides continuous integration for your project without the downsides. Key features of Django-Jenkins: It eliminates the problems associated with previously used nose testing frameworks It clearly shows the errors and warnings after each build The program has plenty of post-build actions 32. Robot Framework @robotframework Creator: Robot Framework Language: Python Robot Framework is a testing framework that uses the keyword-testing approach. Its main advantage is that you can add extensions to the framework to satisfy your specific testing demands. For instance, you can add tools and libraries depending on the demands of your test. Robot Framework’s key benefits: You can extend its testing capabilities using library extensions such as Java Test cases are clear and easy to understand The program has many built-in tools such as Libdoc and Robot that facilitate testing 33. Enforce Creator: Russ Baz Language: Python Enforce.py is an integration testing program that runs on Python 3.5+. The program doesn’t run on the previous versions of Python. This software is still in development. This means that it doesn’t work very well while trying to test large structures. Features available from Enforce include: This is a highly configurable system that can be modified for different tests It is very easy to use One application of the class decorator automatically applies the decorator to every method in that class Ruby Integration Testing Tools 34. Test-kitchen @kitchenci Creator: Kitchen Language: Ruby Test-kitchen has perhaps the most “play on words” approach out of any other testing tool on our list. Using terms like kitchen (obviously), chef and cookbook; users are taken through a visual journey toward using this tool for testing infrastructure. Test-kitchen allows developers to: Learn while creating in a very “hands on” tutorial Use the “red, green, refractor” method of coding to write a test first, then use the code that works Automate git installation 35. Culerity Creator: Alexander Lang Language: Ruby This clever integration tool actually integrates two other popular tools (one of which is on our list), Cucumber and Celerity. Combine the two and you come up with Culerity Culerity is useful in a few ways: The ability to test the full stack of Rails Running an application in Ruby as Celerity runs in JRuby Run tests in a developer’s Ruby environment, unlike Celerity which requires JRuby 36. Evergreen @AbePetrillo Creator: Abraham Petrillo Language: Ruby Evergreen is unique. It’s a Ruby integration testing tool, but it’s to run “Jasmine JavaScript unit tests” and then integrate those into Ruby apps. A worthy inclusion on the list due to its usefulness. Evergreen’s benefits and features include: Integrations with Ruby 2 and Ruby 3 Uses Selenium to run its tests Tests JavaScript in isolation from apps Other Programing Languages 37. Respawn @jbogard Creator: Jimmy Bogard Language: C# This integration testing tool helps in rebooting test databases into a clear condition. Rather than erasing information at the test’s end or taking back transactions, this tool will reboot the databases to a clean state through deleting data from the tables. Features: Guarantees a known point of starting before every test It intelligently checks your SQL Metadata to create a table order for deleting according to foreign key relations among tables The object of Checkpoint maintains this list of tables privately to allow only one calculation 38. Testium @Groupon Creator: Groupon Language: CoffeeScript Testium is an integration testing tool to offer straightforward, but efficient, software to test web applications in various browsers through selenium and PhantomJS. This tool allows you to write tests of integration which: Use the similar BDD syntax Have the synchronous API Enable selenium leverage 39. Pioneer @MojoTech Creator: Mojotech Language: CoffeeScript This tool offers a layer of obstruction between the integration tests and DOM markup. It is also crucial in drying up the definitions of steps and consolidates the way people interact using the DOM in the tests. Features include: Allows text expansion It makes your tests more efficient Easy definition of steps 40. GoConvey @smartystreets Creator: SmartyStreets Language: Go This tool is important for gophers and utilizes the Go test. This Go testing tool can be used in the browser or terminal in regards to your viewing pleasure. With this tool, you will get notifications on your desktop. The console output is readable by anyone, with or without IT. You will also be able to see the coverage of the tests. Some of Smartystreets’ benefits include: Generates Test code Large regression tests suite Integrates directly with the Go test 41. Dockertest Creator: Ory Language: Go In the development of web applications, it is important to utilize services which communicate to the database system. To unit test all these services could prove to be strenuous since mocking dataset is difficult. The Docker system is perfect for doing unit tests since you can rollback containers quickly and destroy them after completion of tests. Available features from Dockertest: Using this tool is simple If clean up of container fails, you can set the absolute lifetime on the containers Dockertest library offers commands that are simple to use for rolling Docker containers 42. Hiroaki Creator: Jorge Castillo Language: Kotlin Kotlin is a programming language primarily used for Android and it’s growing in popularity to give Java a proverbial run for its money. It gives developers the ability to write API integration tests in the Kotlin language. Some facts about Hiroaki, include: Fairly straight-forward documentation (that may not be enough for some) Uses a mocker server to see how your program handles certain server and API issues 43. Subliminal @inkling Creator: Inkling Language: Objective-C According to its page on GitHub, “Subliminal is a framework for writing iOS integration tests.” One of the coolest features here is the ability (via a mechanism) to actually manipulate your application. Other features of Subliminal include: The ability to work with common tools altogether to fully test with ease Test virtually every interaction without the need (in many cases) to use private APIs Decent documentation and instructional materials 44. Rust-bio Creator: Rust-Bio Language: Rust Rust-bio is literally a library of continuously tested implementations for Rust. It is licensed under the MIT open-source and is constantly being updated by a large group of regular contributors. Rust-bio gives Rust developers: In-depth overview of algorithms and structured data supported An easily organized and accessible library Simple setup instructions for beginners in two steps 45. Docker-it-scala @WhiskTeam Creator: Whisk Labs Language: Scala Our only tool listed for Docker is Docker-it-scala. Not a ton of documentation here, but enough if you’re familiar with Docker and Scala. Here are a few points about Docker-it-scala: Works with two libraries for docker engine communication A pair of “testkits” are available The ability to create custom bindings in an environment Multiple Language Integration Testing Tools 46. VectorCAST @VectorSoftware Creator: Vector Languages: C, C++ C++ or VectorCAST is a crucial tool in integration testing and is mostly useful for embedded developers for important business systems and security validation. This top-notch automated unit is broadly utilized in medical gadgets, automotive, avionics, railway, financial companies as well as industrial controls. Features: It enables developer testing to be a transparent and simple technology Takes manual testing to engineering rigor from manual process Automates framework build up for isolating newly created code thus reducing costs 47. FitNesse @unclebobmartin Creator: FitNesse Languages: Java primarily, but every language This wiki web server has a low learning curve and entry. That makes it ideal for integrating with other tools. The specifications of this tool could itself be tested against the framework. FitNesse is a completely integrated independent wiki and framework for acceptance setting. Features: The base of the code is not under any ownership Highly adaptable and is useful in places like Web/GUI tests and electronic components Supports the major languages 48. Selenium @SeleniumHQ Creator: Selenium Languages: Java, Dockerfile Selenium is a multi-part integration testing tool. You can use a certain part to quickly create scripts or a more robust part to create larger tests and scripts across multiple environments. This tool is also one of the more popular solutions online. Some of the core benefits of Selenium include: It’s an entire suite of tools including Selenium 1, Selenium 2, Selenium Grid and Selenium IDE Detailed documentation on all of the tools available Large number of supported browsers for testing 49. Cucumber @cucumberbdd Creator: Cucumber Languages: Java, JavaScript, Ruby, Kotlin Cucumber tops so many lists when it comes to popular and useful integration testing tools, and it’s for good reason. The site explaining the tool is possibly the best-designed, loaded with documentation and laid out well. A few of the benefits of Cucumber include: Multiple languages for a wide range of development projects Large library of video tutorials and other documentation List of support options available to help with a number of issues 50. Hamcrest @hamcrest Creator: Hamcrest Languages: Java, PHP, Python Hilariously named integration testing in seven different programming languages. In addition to the most common (Java, PHP, Python) there is also testing for Ruby, Objective-C, Erlang and Swift. Some fun and useful notes on Hamcrest: Tons of languages to choose from for testing Individual pages for each language on GitHub (each with its own documentation) Originally created in Java, but expanded Tags:Automated Software TestingContinuous Integration Tools Request More Info You Might Also Like... Cybersecurity Alert Visibility: NOT Black Box Detection Cybersecurity That’s Not Fairy Dust: It’s Cloud Security Engineering and Science Real World: How Machine Learning Modeling Works–ThreatML Categories Application Infrastructure Protection Application Security Cloud Security Compliance Container Security & Orchestration Cybersecurity DevSecOps General Machine Learning Professional Development SOC Threat Intel Threat Stack