Know About API Testing
Posted By : Ankita Arora | 11-May-2017
What is API?
API (Application Programming Interface). It is the interfcae between application softwares and services. In simple words it is a medium of communication and data flow between the softwares. API's are set of functions, routines etc which are collectively called as libraries which are used in creation of software applications.
APIs are like basic building blocks of the software, developers then integrate these blocks to their code to make a well workable product. There are many type of request methods but some of the most common methods are:
- GET: Read/ To fetch data
- POST: Create/ To add data
- PUT: Update
- PATCH: Updating the existing resourses.
- DELETE: Delete
API Testing involves interface testing and is a performed during integration testing. It is done after the application is build. API testing is done to ensure that APIs in the application returns the appropriate response. Is is done to keep check on the expected fuctionality, performance, security and relaibility. Since in this type of testing we don't have any GUI, so API testing is done at the message layer of the system architechture as we don't have look and feel of an application.
Tests on APIs
- Test if the value returned is based on the input. (GET)
- Test if the API is returning anything or not. (GET)
- Test if the API is tiggering any other API/events/interrupts.
- Test if the API is updating anu data structure or not. (PUT)
- Test if THE API modifies any resourses. (PATCH)
Unit Testing: To test the indivisual modules.
Security Testing: To test for authentication and encrption.
Functionality Testing: To test that the APIs are functional, executable and usable.
Performance Testing: To test the load and relaibility factors of the modules.
Types of errors encountered:
- High response time: Performance issue
- Unstructured response(JSON, XML etc.)
- Inconsistent/duplicate funtionaliy
- Security & Relaibility concerns
- Failure in handling errors
Some of the API Testing Tools are:
- Eclipse SDK
Challenges coming in the way:
- No UI available, hence difficult to ebter inputs.
- Coding knowledge for testers
- Parameters handling(Combination,Selection)
- Call sequencing