API stands for Application Programming Interface. API enables two separate software system to communicate with each other. API contains methods and routines used by the system that other systems call and get the result to consume in the own system.
API testing is totally different from GUI Testing and it focuses on Applications business logic layer. This testing does not care about the look and feel of the application.
Setup of an API Environment:
Usually, setting up the API Test Environment is not that easy because it doesn’t involve any User Interface. You need to configure the environment based on the application requirements. You need to study the web-services document provided by developers and then design the setup. Using API code, you should make the specific call to API and consume the output for doing verification or other depended API calls.Output could be status (say OK or Error) or any kind of Data (object id) that to call another API method.
Ideally API should catch and handle the problem instead of just failed. If the input is not correct it will let you know the status with great detail like ‘Incorrect request” etc. In a very easy way, I can say, you send a request message to web services and after processing, web service sends you back a response based on that input. It could be ‘Bad Request’ if the message sent incorrectly and contains response in a specific structure based on the architecture of the web services. This response should contain enough information to understand the output and correct if there is some problem with the request.
To understand the API call, let’s see a basic example;
Consider, API functions, which are for an e-commerce web service cart web services;
AddItemToCart(ItemType item, float price, int count)
Once you look at the method, AddItemToCart, you need to pass an item of type ‘ItemType’, price in ‘float’ and count of items in ‘int’ data type to add items to the cart. The output should capture all output message and you need to parse them and get the desired response.
Approach to API Testing:
For say, if you going to test end to end scenario for a purchasing an item, you would be using few API calls.
- Checkout(), if Item added to Cart.
- MakePayment() if you are able to add the item to checkout step.
API Test Tools:
There are various free and paid tools available in the market, which are specifically designed to test various API for the database application, mobile apps, desktop apps etc. You can download free tools as an extension or as standalone and access web services via the tool. These tools can emulate all or part of the environment in which the API would typically operate. It is not necessary that the tool can emulate all the API calls you need, but I am sure you will find the tool that can do most as per your need. SOAPUI, POSTMAN, Parasoft soaTest are few tools, which you can try.