You should be able to meet your API testing requirements with a solution that’s easy to use, adopt and scale throughout the organization. Below we’ve summed up the most important capabilities across five key areas, but you’ll want to download the complete white paper for all the details.
1. Ease of use and core capabilities
- Visual and scriptless functionality
Your API testing tool should not require you to have any experience writing code. A visual testing tool with an intuitive and scriptless user interface will empower a large body of testers at a variety of experience levels to use the tool productively.
- A custom extensibility framework
Should you need to write code to accomplish tasks such as generating a proprietary token or a unique identifier, your API testing tool should have the capability of using the scripts, but it should not be limited to a single language.
- Automated assertions and validations
It is important for your API testing tool to help you define success criteria for response validation. This process should enable the tests to run automatically as a batch, validate messages, and eliminate the need for you to manually inspect your traffic.
For maximum flexibility when working with your API testing tool, it should be able to data-drive your test cases. This means that your framework should enable you to swap out static values in your API calls with dynamic values derived from data sources.
Your API testing solution should be able to re-leverage any API test you have previously created. This gives you the ability to define scenarios such as web UI logins, complex authentication, or a repeated set of actions once and then bring them into subsequent test cases as a reference.
- Ability to rapidly create tests before a service is available
It’s important to ensure that your API testing solution helps you rapidly create tests early in the software development process.
Your API testing solution also needs to work with authentication, encryption, and access control.
2. Optimized workflows
Your API testing tool should have a mechanism for controlling test flow based on conditions.
Your API testing solution must be able to work in an Agile context.
- Test data management/generation
Your API testing tool should support you in this activity by providing workflows for connecting to various data sources as well as generating test data itself.
To enable end-to-end testing, your API testing solution must be able to monitor events as they flow through your system.
To support BDD, your API testing solution should give you the foundation for Cucumber step definitions that your QA team needs to build the required test steps for business analysts to leverage in their BDD.
3. Supported technologies
Your testing tool must be able to interface with Representational State Transfer protocol (REST) APIs.
Simple Object Access Protocol (SOAP) is still extremely relevant in most applications, so your API testing solution must be able to interface with SOAP APIs.
Your API testing solution must support queuing technology such as MQ and JMS, so you can simulate various patterns including point-to-point and publish/subscribe.
- IoT and microservice testing
Your API testing tool must be future-proof and have the ability to communicate via new protocols so that you are ready to test them as they are implemented at your organization.
Your API testing tool must have the ability to communicate with databases. This will give you the ability to validate the contents of the database as you are interacting with your system via the APIs.
Your API testing tool must have an integrated capability for testing your web UIs.
Your API testing solution should allow you to shift left performance testing by leveraging the API tests you have been creating for individual component, smoke, and regression tests as a part of your nonfunctional load and performance testing strategy.
- Testing nonstandard message formats
Your API testing solution must be able to communicate over non-standard message formats and protocols.
Your API testing tool should have the capability to integrate into your existing CI process, so you can execute test cases via a command line interface or a series of open REST APIs, and select which type of test cases you want to execute with a specific configuration.
Your API testing solution should have built-in plugins for common CI systems such as Jenkins, Microsoft VSTS, Atlassian Bamboo, and Jet Brains Team City. There are other build systems available, so your API testing solution should have an extensibility platform to allow you to build connectors for all future CI systems.
Your API testing solution should have the ability to execute your API tests in batch via a command line interface.
- Open APIs for DevOps integration
Your API testing solution should have open APIs that allow you to programmatically generate, configure, and execute test cases.
5. Management and maintenance
- Integration with requirements management systems
Your API testing solution should integrate with requirements management systems such as ALM, Bugzilla, and Jira.
- Basic and advanced reporting
Your API testing solution should have a rich reporting framework that allows you to understand individual API test results, as well as the entire project health.
Your API testing solution should provide the ability to bundle together API testing scenarios for execution in multiple environments.
- A process for managing change
One of the most critical capabilities of your API testing solution is a change-management process.
- On-premise and browser-based access
Your API testing solution must be broadly available. This means that you should be able to access your solution either on-premise or through a cloud provider, and your API testing solution must have a desktop application as well as a browser-based application.