In this blog, I am going to explain about API’s and how they are tested. In addition to that, we’ll also discuss the best practices which we need to follow while testing API’s.
API is the short form of Application Programming Interface. It is a common link that allows two applications to communicate with each other. Everytime you use Facebook, Twitter or any other application like Facebook, checking weather from Google you are actually using API’s to interact with other systems.
Illustration of an API:
Imagine that you are sitting in a restaurant with a menu card in your hand. Considering restaurant to be a system, “Kitchen” is the part of the system which will prepare your order. Coming to the common link which will take your order to the kitchen and deliver your food to your table – “Waiter”. The “Waiter” API interacts with customer and conveys the order (i.e message) to kitchen( which is actually server). After processing your order, the “waiter” delivers the food(response) to you.
API Security Management:
You need to have a proper API Security management without which API’s are vulnerable to dangers. So, we need to have a plan for security of API which provides the protection for communication channels as it is the primary path for data exchange.
With the help of this diagram, we are going to explain each part and how they interact with the API’s.
Website: It is the collection of related web pages which include various multimedia content generally identified with domain name or the website. Examples are google.com, yahoo.com, amazon.com etc.
Mobile Device: It is a handheld device which is both compact and lightweight. In our mobiles, we interact with various API’s. Like if you need to book air tickets you need to interact with API of Yatra.com and book your tickets.
Web Portal: It is a customised website which brings information from different sources like online forums, search engines. Usually, each information source gets a dedicated area on the portal for displaying the information. It may use search engine’s API to permit users to search the intranet content( private or confidential information limited to the organization staff) as opposed to extranet content(analyze controlled private network that allows access to partners, vendors or you can say the subset of organization’s intranet).
B2B Partner: API’s are generally the long-missing bridge in facilitating B2B interaction, addressing businesses that generally haven’t thought about their respective capacities for interfacing when they are in production.
Cloud application : It is a software program where cloud based and local components work together. It allows you to share images, links, music, videos and other files from your desktop.
What is API Testing?
API testing is a type of software testing that involves direct testing of application and programming interface. As part of integration testing you need to determine if they meet the required functionalities and specifications being laid down in the sprint planning. Since API’s lack GUI, API testing is generally performed at the message layer.
How API’s work?
An API defines functionalities that are independent of their respective implementations, which allows those implementations and definitions to vary without compromising each other. Therefore, a good API makes it easier to develop a system by providing the essential building blocks.
When developers create applications, they don’t often start from scratch. Basically we need to make frequent changes to make the complex processes look simpler. The speed that API’s enable developers to build out apps is crucial to the current pace of application development.
API generally depends on two main components 1.) data encapsulation and transfer, and 2.) security. API consist of a request and response. The data is generally in the format of XML or JSON. HTTP headers, cookies, or query string parameters secure the data during the exchange(Request-Response flow).
Examples of API monitoring
Entering credit card information and shipping choices requires still more API calls. Want to share a purchase on social media after completing a transaction? APIs kick in again. A failure or slowdown anywhere along this chain can derail your customer’s experience and cost you a sale.
Best practices to apply for API monitoring:
- First, keep tabs on API performance functionality using API tests. The tests are monitored for their high precision. The data which is collected is used for analysis of performance trends.
- API testing tools have API’s which are already in-built, which enables the data to integrate with larger application performance monitoring systems.
- DRY( Don’t Repeat Yourself): Create a client for your SUT( System Under Test) before adding tests. You need to avoid testing the repetitive code, but many tests require you to address the same components or address similar actions. In these cases, you can create a common library to wrap your test requests by making the usage shorter and more simple in the process.
- Clarity: Write clear tests that enable easy debugging. While tests are running successfully they require no attention, but when the tests start failing, we need to allocate resources to find the real cause.
- Mapping and Execution: Design the tests to run under different SUT configuration options. The test needs to be designed in such a way that the end user is not limited to a single system. They should be able to work in different working environments having different configurations.
If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Twitter or Facebook. Thank you!
Come back here and tell us about the before-and-after. I bet you’ll have something to say!
That’s all for this blog, stay tuned for the upcoming blogs on the testing practices and other interesting stuff related to the API testing.