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 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.
For more information, check out the Swagger test templates GitHub repository)
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 is built on Node.js, Mocha, Chai and Request. Check out the source code on GitHub.
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 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.
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 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 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.
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
:: Christopher Reichert
Automate your QA pipeline
Reduce bugs in web applications by using Assertible to create an automated QA pipeline that helps you catch failures & ship code faster.Get started with GitHubSign up for free