06/13/2017 Engineering Christopher Reichert

APIs are becoming an integral part of how software works, and the more we rely on web-based systems, the more crucial it is that they're tested, monitored, and available for consumers. In this post, I'll outline 10 API testing tools you should try in 2017.

At Assertible, we've used nearly all these tools to dogfood our own product and to better understand exactly how teams are testing web apps and APIs.

I've split up the tools into two categories: hosted and open-source.

Open source API testing tools

Dredd

Command-line

Dredd is a command-line tool designed to validate an API based on a formal definition like Swagger or API Blueprint, and capable of validating responses against expectations defined in the specification.

Dredd is perfectly suited for running API tests from a CI/CD pipeline and supports defining advanced tests in many programming languages including Go and Python.

For more information, check out the Dredd documentation.

Swagger-test-templates

Command-line

Swagger Test Templates is a code generator used to generate API test-suites based on a Swagger definition. Swagger Test Templates generates your test-suite's code in Javascript using familiar libraries such as Mocha JS, Chai JS, and Commander JS.

For more information, check out the Swagger test templates GitHub repository)

Karate DSL

Command-line

Karate is a testing framework which uses a BDD, or Behavior-Driven Development, domain-specific language for defining API tests. Karate is built on top of the Cucumber-JVM which should make it familiar to anyone used to using Cucumber for BDD tests.

One big upside of Karate is that it fully supports seamless integration into CI / CD pipelines and can also support testing live environments like dev, QA, or pre-prod. Karate has very comprehensive support for common HTTP calls that use SOAP/XML, HTTPS, HTTP proxies, URL-encoded form data, multi-part file uploads, and more.

For more info, check out the Karate GitHub repository.

Chakram

Javascript library

Chakram is a REST API testing framework designed to perform end to end tests on JSON REST endpoints. Chakram uses a BDD style syntax which is written in Javascript and offers a comprehensive set of HTTP assertions and hooks for extending test behavior.

Chakram is built on Node.js, Mocha, Chai and Request. Check out the source code on GitHub.

Frisby.js

Javascript library

Frisby is a REST API testing framework built on Node.js and Jasmine (A BDD style test-runner) that makes testing API endpoints simple, easy, and fast.

With the soon-to-be released Frisby.js 2.0, there are many improvements for extensibility and exposure to the underlying Jasmine test structure which makes it familiar for those already running Jasmine based tests.

Frisby tests can be run in a continuous integration or delivery pipeline using the jasmine-node test runner.

Check out the Frisby.js source code on GitHub for more information.

Hippie

Javascript library

Hippie is a simple Javascript DSL for testing APIs. It supports a clean assertion syntax, middlewares for extending test behavior, and the ability to print clean reports with diffing capabilities.

Hippie has an extremely clean API and makes it dead simple to write standalone scripts you can automate in your CI / CD pipeline before or after deployments. Hippie also has another package specifically designed to test APIs with a Swagger definition called hippie-swagger.

For some examples, check out the Hippie GitHub repo.

Hosted tools

Assertible

Assertible is an API testing tool that focuses on reliability and automation. Assertible supports validating HTTP responses with turn-key assertions such as JSON Schema validation and JSON Path data integrity checks.

One major advantage of Assertible is it's support for automating API tests through each step of a continuous integration and delivery pipeline. It has support for running API tests after deployments and integrates with familiar tools like GitHub, Slack, and Zapier.

Check out the Assertible documentation for more information.

Postman

Postman is a GUI API client that supports exploratory testing, documentation, sharing, and monitoring. Even though Postman is a competing product with Assertible, it is a very very strong product and has a wide set of nice features for API testing. Because of this, we spend a lot of time using Postman not only to compare with Assertible but also to help build out own APIs.

One big advantage of using Postman is that it runs on your local machine which allows you to control your own data. Some organizations have security restrictions which may prevent using a fully hosted option. Postman also supports running tests in a continuous integration pipeline using Newman.

For more information, check out the Postman website

Apex Ping

Apex Ping is a beautifully simple uptime monitoring tool. I've used Apex Ping to monitor a few sites and while I've never dug into any advanced features, I've found Apex's default behaviors to be well thought out and extremely easy to use. Because of this, I would highly recommend it for simple health checks.

Sign in to Apex Ping to check it out.

Apigee Api Studio

While APIGee's API Studio is heavily focused on constructing APIs, it has a few neat features designed to make testing easier like the Try this operation button on each endpoint as well as API Response Simulation for mocked HTTP responses. API Studio is still in Beta so I am hopeful they will release even more API testing features.

Check out the API Studio demo for more details

Wrapping up

Is there a tool you think I missed? Send me a message or reach out on Twitter and let's talk!

:: Christopher Reichert

Categories

Automate your QA pipeline

Define and test your web service with Assertible Track and test API deployments across environments Schedule API monitoring and failure alerts

Reduce bugs in web applications by using Assertible to create an automated QA pipeline that helps you catch failures & ship code faster.

Sign up for free