Test Mace for Developers Create requests and scenarios using variables, authentication, autocomplete feature and syntax highlighting.
API testing tools are more important now than ever. That why I create this list of the top 20 free API Testing Tools you should know.
As we move towards more Agile shift-left software development processes like continuous integration and delivery, the need to quickly give test feedback to our developers is increasing.
One downfall to UI tests is they are slow, making them a poor choice for letting developers know quickly if their code has broken the latest build or not. API tests, on the other hand, tend to be faster and run more reliably than GUI tests.
Below is a quick API testing tools comparison of open source options.
Before we take a closer look at the API testing tools, let’s make sure we’re all on the same page with what an API actually is.
Application Programming Interfaces (API) is a specification that acts as an interface for software components.
While most functional testing involves testing a user interface like a web page or a dot net form, API testing involves bypassing a user interface and communicating directly with an application by making calls to its APIs.
API testing allows you to test headless technologies like JMS HTTP, databases and Web services.
API testing is sometimes called “headless” testing. Most headless testing consists of bypassing the UI and sending a request directly to an application's backend or service and receiving a response while validating the response to ensure things are working as we expect them to.
This simple example is often referred to as a client/server relationship. A client makes a request by asking for a resource; the request then goes out and finds a server that can fill that request. The server locates the desired resource and sends a response back to the client.
Since Selenium is just for browser-based testing, you may be wondering which tool to use for Rest and Soap web service-based testing.
Here are some of the top API testing tools that can be used for Rest and Soap Web Service Testing. API tools are great because many times you can leverage one test script to help with API load/stress performance testing, security testing and penetration testing.
So let's get to it.
Although there are a lot of great paid options here are the top free API testing tools you should check out.
Postman is a rest client that started off as a Chrome browser plugin but recently came out with native versions for both Mac and Windows.
At a high level, you can use it to send a post request to your web server and it gives you the response back. It allows you to set up all the headers and cookies your API expects, and then check the response when it comes back.
To hear how Postman is used in the real world for testing video games check out Amber Race's TestTalks episode on Testing Video Games Using API Automation.
Karate allows you to create a test that can sequence calls to any kind of web-service and assert that the responses are as expected.
Check out a quick example of how to get started using Karate with BDD.
SoapUI is a headless functional testing tool from SmartBear software. It comes in two flavors: Free open source version and Pro Version. Since the free version is open-source, you can actually gain access to the full source code and modify as needed.
The SoapUI Pro version is user-friendlier and has additional functionality including a form editor, an assertion wizard for XPath, and SQL query builder. The free version lets you:
Listen to Mike Giller of Smartbear talk more about SoapUI and API Testing.
HttpMaster describes itself as a web development and test tool to automate testing of websites and services. It can be used to test RESTful web services and API applications. HttpMaster also allows you to and monitor API responses.
Rest-Assured is an open-source Java Domain-specific language (DSL) that makes testing REST service simple. It simplifies things by eliminating the need to use boiler-plate code to test and validate complex responses. It also supports XML and JSON Request/Responses. This is probably the best-known tool to test rest API.
If you use Java and want a REST API web services library you can use in your framework Rest-Assured is a good choice.
Johan Haleby creator of Rest-Assured shares tips and tricks for getting started REST testing with Rest-Assured.
RestSharp is a simple REST and HTTP API Client for .NET
HTTP Client and Request Visualizer and Constructor tool, helps developers build, debug and test RESTful APIs. Rest Console is an HTTP Request Visualizer and Constructor tool, helps developers build, debug and test RESTful APIs.
Looking for API integration testing tools?
RoboHydra is a testing tool for HTTP-based clients (ie. software that makes HTTP requests). The idea is, instead of connecting your clients-under-test to the real server, you connect them to RoboHydra and make RoboHydra respond with whatever you need for each request.
hippie-swagger is a tool for testing RESTful APIs. It’s also an API testing tool with automatic swagger assertions. In addition to validating API behavior, it will fail tests when swagger documentation is missing or inaccurate.
What is dialectical behavior therapy. WebInject is an open source solution for automated testing of web applications and web services. It can be used to test individual system components that have HTTP interfaces (JSP, ASP, CGI, PHP, AJAX, Servlets, HTML Forms, XML/SOAP Web Services, REST, etc).
PyRestTest is a python based REST testing and API micro-benchmarking API testing tool
Airborne is an open source Ruby-based RSpec driven API testing framework.
Recommended by Unmesh Gundecha Unirest is a lightweight HTTP request client libraries.
Mockbin was recommended by Augusto Marietti. Mockbin allows you to generate custom endpoints to test, mock, and track HTTP requests & responses between libraries, sockets, and APIs.
Not sure why more folks aren't aware of the Citrus Framework. Citrus is an open-source framework that can help you automate integration tests for virtually any messaging protocol or data format. It has nice test results reports as well.
For more info on Citrus, Integration testing check out API Integration Automation Testing With Citrus Framework.
ZeroCode is a free and open source, lightweight API testing tool library built on JUnit core runners, for API endpoints, using simple JSON steps. I just heard about this tool but sounds like its already being used in large enterprise companies like HSBC Bank.
Here are some benefits of using ZeroCode:
Although primarily known as a GUI automation test tool Katalon studio also supports test scenarios that use web services and can be used as an API test tool.
Some benefits of Katalon Studio are:
Listen to my interview with Raghav Pal to discover more about Katalon studio.
As you might already know JMeter was developed for load testing but many testers also use it for API testing and as an API load testing tool as well.
Some benefits of JMeter are:
Tavern is a pytest plugin, command-line tool and API testing tools Python library for automated testing of APIs.
RestBird is a collection of Rest API Tools like autotest, mock server and record, and playback functionality. I just learned about it from a comment someone left for this post. It looks promising. Some benefits of RestBird are:
These are the top API testing tools free I’ve come across, but there are tons of API testing tools popping up everywhere, so I’ll definitely be adding to this list as time goes on.
If one of your favorite API test tools is not listed, please let me know and I’ll add it.
For other non-functional APIautomation testing tools check out:
If you feel overwhelmed with staying up to date with all the latest automation testing tools and best practices check out my annual online conference dedicated 100% to just automation testing — Automation Guild.