API testing (Application Programming Interface Testing) is a software testing type which focuses on the determination if the developed APIs meet expectations regarding the functionality, reliability, performance, and security of the application.
The interest in this kind of testing has been growing steadily over the last couple of years.
Having the right process, tool and solution for API automation test are more critical than ever. And with the shift-left trend, API testing is more than just a quality control solution but a crucial component of a success CI/CD deployment.
1. SoapUI (Free or $659/year)
SoapUI is a headless functional testing tool dedicated to API testing, allowing users to test REST and SOAP APIs and Web Services easily.
Using SoapUI, users can get the full source and build the preferred features besides these abilities:
- Create a test quickly and easily with Drag and drop, Point-and-click
- Quickly create custom code using Groovy
- Powerful data-driven testing: Data loaded from files, and databases, and Excel so that they can simulate how consumers interact with the APIs
- Create complex-scenarios & support asynchronous testing
- Reusability of Scripts: load tests and security scans can be reused for functional test cases in just several steps
2. Postman (Free or $21/user/month)
Being originally a Chrome browser plugin, Postman now extends their solution with the native version for both Mac and Windows.
Postman is a good choice for API testing for those who don’t want to deal with coding in an integrated development environment using the same language as the developers.
- Easy-to-use REST client
- Rich interface which makes it easy to use
- Can be used for both automated and exploratory testing
- Can be run on Mac, Windows, Linux & Chrome Apps
- Has a bunch of integrations like support for Swagger & RAML formats
- Has Run, Test, Document and Monitoring Features
- Doesn’t require learning a new language
- Enable users to easily share the knowledge with the team as they can package up all the requests and expected responses, then send to their colleagues.
3. Katalon Studio (Free)
Katalon Studio is a free automation test tool used to provide a common environment to create and execute UI functional, API/Web services and mobile testing.
The capability to combine UI and Business levels (API/Web services) for different environments (Windows, Mac OS, Linux) has been considered an advantage of Katalon Studio.
Katalon Studio supports SOAP and RESTful request with various types of commands (GET, POST, PUT, DELETE) with parameterized capability.
- Support combination test between UI and API verification.
- Support testing both SOAP and RESTful requests.
- Hundreds of built-in keywords for creating test cases.
- Support one of the most powerful assertion library, AssertJ to create fluent assertion with BDD style.
- Support the data-driven approach.
- Can be used for both automated and exploratory testing.
- Suitable for both pros and non-techies
4. JMeter (Open Source)
JMeter (open source) is widely used for functional API testing although it is actually created for load testing.
- Supports replaying of test results
- Automatically work with CSV files, allowing the team to quickly create unique parameter values for the tests.
- Users can include the API tests in CI pipelines thank the integration between JMeter and Jenkins
- It can be used for both static as well as dynamic resources performance testing
5. Rest-Assured (Open Source)
Rest-Assured is an open-source Java Domain-specific language that makes testing REST service more simple.
- Have a bunch of baked-in functionalities, which means users don’t have to code things from scratch.
- Integrates seamlessly with Serenity automation framework, so that users can combine the UI and REST tests all in one framework that generates awesome reports.
- Support BDD Given/When/Then syntax
- Users don’t necessarily need to be an HTTP expert
Also, there are more popular API testing tools, like:
- Tricentis Tosca (https://www.tricentis.com/)
- Apigee (https://apigee.com/api-management/)
- Assertible (https://assertible.com/)
- Karate DSL (https://github.com/intuit/karate)