API Notes
API Notes
https://www.linkedin.com/company/gvpl-global/
API Testing Interview Questions & Answers
1. What is an API?
In an API testing interview, you could be asked to give some API examples, here
are the well-known ones: Google Maps API, Amazon Advertising API, Twitter
API, YouTube API, etc.
• All Web services are APIs but not all APIs are Web services.
• Web services might not contain all the specifications and cannot perform all the
tasks that APIs would perform.
• A Web service uses only three styles of use: SOAP, REST and XML-RPC for
communication whereas API may be exposed to in multiple ways.
• A Web service always needs a network to operate while APIs don’t need a
network for operation.
Many APIs have a certain limit set up by the provider. Thus, try to estimate your
usage and understand how that will impact the overall cost of the offering.
Whether this will be a problem depends in large part on how data is leveraged.
Getting caught by a quota and effectively cut-off because of budget limitations
will render the service (and any system or process depending on it) virtually
useless.
This is one of the fundamental Web API interview questions. Bellows are four
common Web API architectural styles:
• Stateless communication
Web API can be consumed by any clients which support HTTP verbs such as
GET, PUT, DELETE, POST. Since Web API services do not require
configuration, they can be easily used by any client. In fact, even portable devices
such as mobile devices can easily use Web API, which is undoubtedly the biggest
advantage of this technology.
API testing is a kind of software testing that determines if the developed APIs
meet expectations regarding the functionality, reliability, performance, and
security of the application.
In an API interview, they are likely to ask about the advantages of API testing.
So be prepared with the significant ones such as:
• Test for Core Functionality: API testing provides access to the application
without a user interface. The core and code-level of functionalities of the
application will be tested and evaluated early before the GUI tests. This will help
detect the minor issues which can become bigger during the GUI testing.
• Time Effective: API testing usually is less time consuming than functional GUI
testing. The web elements in GUI testing must be polled, which makes the testing
process slower. Particularly, API test automation requires less code so it can
provide better and faster test coverage compared to GUI test automation. These
will result in the cost saving for the testing project.
Many protocols are now available to be used in API testing, such as JMS, REST,
HTTP, UDDI and SOAP.
Setting up the API’s test environment is not an easy task, so you should have a
ready answer if your API testing interview is coming. The test environment of
API is a bit complete and requires the configuration of the database and server,
depending on the software requirements. No GUI (Graphical User Interface) is
available in this test form.
When the installation process is complete, API is verified for the proper
operation. Throughout the process, the API called from the original environment
is set up with different parameters to study the test results.
While there are certainly specialty tests, and no list can be asked to be
comprehensive in this realm, most tests fit broadly into these following nine
categories that you should remember before attending in an API testing interview.
1. Validation Testing
2. Functional Testing
3. UI testing
4. Load testing
6. Security testing
7. Penetration testing
8. Fuzz testing
3. Demand the development of test cases for the required API methods
4. Configure the control parameters of the application and then test conditions
During the API testing process, a request is raised to the API with the known data.
This way you can analyze the validation response. While testing an API, you
should consider:
• Accuracy of data
• Schema validation
• Authorization checks
• Verifying the calls of the mixture of two or more added value parameters
• Writing appropriate API test cases and making use of testing techniques such as
equivalence class, boundary value, etc. to check the operability
There are myriad of different API testing tools available. A few of common tools
are Katalon Studio, Postman, SoapUi Pro, Apigee, etc. While doing Unit and
API testing, both targets source code. If an API method uses code based in .NET
then another supporting tool must have .NET.
16. What are differences between API Testing and Unit Testing?
Aimed to access the full functionality Used to verify whether each unit in
of the system for it will be employed isolation performs as expected or not.
by the end users ( external developers
who will use your API)
Often run after the build is ready and Each of the code modules must be
authors do not have access to the ensured to pass the unit test before
source code. being built by developers.
• On the other hand, UI ( User Interface) testing refers to testing graphical interface
such as how users interact with the applications, testing application elements like
fonts, images, layouts etc. UI testing basically focuses on look and feel of an
application.
If you can overcome the challenges in API Testing, you can be confident in the
API testing interview too. They are:
• Parameter Selection
• Parameter Combination
• Call sequencing
19. What are the testing methods that come under API testing?
One of the most common Web API testing interview questions is about the testing
methods. They are:
• Discovery testing to list, create and delete the number of calls documented in API
• Automation testing to create and run scripts that require regular API calls
20. Why is API testing considered as the most suitable form for Automation
testing?
API testing is now preferred over GUI testing and is considered as most suitable
because:
• It verifies all the functional paths of the system under test very effectively.
Not only API fundamental questions, the interviewer also determine your
knowledge and experience by asking about the API errors in a Web API testing
interview. So the most common ones are:
• Documentation errors
• And some standard error expectations as if the result is not so predicted then the
occurrence of errors can be seen and for the same warnings are specified in the
form of a message. There can be one or more warnings within an individual
module.
22. What kinds of bugs that API testing would often find?
• Stress
• Reliability
• Security
• Unused flags
• Performance
• Multi-threading issues
• Improper errors
24. What are API documentation templates that are commonly used?
There are several available API documentation templates help to make the entire
process simple and straightforward, which could be answered in your API testing
interview, such as:
• Swagger
• Miredot
• Slate
• FlatDoc
• API blueprint
• RestDoc
• Delivery layout
26. How often are the APIs changed and, more importantly, deprecated?
APIs, especially modern RESTful APIs, are a nice creation that can certainly
simplify and accelerate integration efforts, which makes it more likely you will
benefit from them. But APIs can and do change for various reasons, sometimes
abruptly, and hence REST APIs do not differ from traditional integration methods
in this respect. If an API call is obsolete and disappears, your procedure will
interrupt and it is important to understand how often the APIs you depend on
change or are deprecated.
Mostly, there are two kinds of Web Services which should be remembered in your
next API testing interview:
2. Web services developed in the REST style are referred to as RESTful web
services. These web services use HTTP methods to implement the concept
of REST architecture. A RESTful web service usually defines a URI,
Uniform Resource Identifier a service, provides resource representation
like JSON and a set of HTTP methods.
REST architecture treats any content as a resource, which can be either text files,
HTML pages, images, videos or dynamic business information.
REST Server gives access to resources and modifies them, where each resource
is identified by URIs/ global IDs.
REST uses different representations to define a resource like text, JSON, and
XML.
XML and JSON are the most popular representations of resources.
Key characteristics of REST are likely asked in a Web API Testing interview. So
please get the answer ready in your mind with these 2 ones:
• REST is stateless, therefore the SERVER has no status (or session data)
With a well-applied REST API, the server could be restarted between two calls,
since all data is transferred to the server
• Web service uses POST method primarily to perform operations, while REST
uses GET for accessing resources.
2. Uniform Resource Identifier (URI), which is the identifier for the resource
on the server.
4. Request Header, which carries metadata (as key-value pairs) for the HTTP
Request message. Metadata could be a client (or browser) type, format
supported by the client, format of a message body format, cache settings,
and so on.
35. What are the most commonly used HTTP methods supported by REST?
• GET is only used to request data from a specified resource. Get requests can be
cached and bookmarked. It remains in the browser history and haS length
restrictions. GET requests should never be used when dealing with sensitive data.
• OPTIONS is used to describe the communication options for the target resource.
• HEAD asks for a response identical to that of a GET request, but without the
response body.
The PUT or POST method should be used to create a resource. GET is only used
to request data from a specified resource.
PUT and POST operation are quite similar, except the terms of the result
generated by them.
PUT operation is idempotent, so you can cache the response while the responses
to POST operation are not cacheable, and if you retry the request N times, you
will end up having N resources with N different URIs created on server.
In a Web API Testing interview, you should give a specific example for PUT and
POST operations to make crystal clear to the interviewer. Below is an example:
Scenario: Let’s say we are designing a network application. Let’s list down few
URIs and their purpose to get to know when to use POST and when to use PUT
operations.
38. Which purpose does the OPTIONS method serve for the RESTful Web
services?
The OPTIONS Method lists down all the operations of a web service supports. It
creates read-only requests to the server.
39. What is URI? What is the main purpose of REST-based web services and
what is its format?
The purpose of a URI is to locate a resource(s) on the server hosting of the web
service.
The “payload” is the data you are interested in transporting. This is differentiated
from the things that wrap the data for transport like the HTTP/S
Request/Response headers, authentication, etc.
41. What is the upper limit for a payload to pass in the POST method?
<GET> appends data to the service URL. But, its size shouldn’t exceed the
maximum URL length. However, <POST> doesn’t have any such limit.
So, theoretically, a user can pass unlimited data as the payload to POST method.
But, if we consider a real use case, then sending POST with large payload will
consume more bandwidth. It’ll take more time and present performance
challenges to your server. Hence, a user should take action accordingly.
Caching is just the practice of storing data in temporarily and retrieving data from
a high-performance store (usually memory) either explicitly or implicitly.
This is one of the fundamental Web services testing questions that you must know
the answer. The SOAP (Simple Object Access Protocol) is defined as an XML-
based protocol. It is known for designing and developing web services as well as
enabling communication between applications developed on different platforms
using various programming languages over the Internet. It is both platform and
language independent.
SOAP is used to provide a user interface that can be accessed by the client object,
and the request that it sends goes to the server, which can be accessed using the
server object. The user interface creates some files or methods consisting of server
object and the name of the interface to the server object. It also contains other
information such as the name of the interface and methods. It uses HTTP to send
the XML to the server using the POST method, which analyzes the method and
sends the result to the client. The server creates more XML consisting of
responses to the request of user interface using HTTP. The client can use any
approach to send the XML, like the SMTP server or POP3 protocol to pass the
messages or reply to queries.
Use the SOAP API to create, retrieve, update or delete records, like accounts,
leads, and user-defined objects. With more than 20 different calls, you can also
use the SOAP API to manage passwords, perform searches, etc. by using the
SOAP API in any language that supports web services.
• GetAddress(): It is used to get a query name and gets the result that best matches
a query. The name is sent to the SOAP call in the form of text character string.
47. What is the major obstacle users faced when using SOAP?
When using SOAP, users often see the firewall security mechanism as the biggest
obstacle. This block all the ports leaving few like HTTP port 80 and the HTTP
port used by SOAP that bypasses the firewall. The technical complaint against
SOAP is that it mixes the specification for message transport with the
specification for message structure.
48. What are the various approaches available for developing SOAP
based web services?
There are two different methods available for developing SOAP-based web
services, which are explained below:
• Contract-first approach: the contract is first defined by XML and WSDL, and then
Java classes are derived from the contract.
• Contract-last approach: Java classes are first defined, and then the contract is
generated, which is normally the WSDL file from the Java class.
Envelope: It is an obligatory root element that translates the XML document and
defines the beginning and end of the message.
Header: It is an optional item which contains information about the message being
sent.
Body: It contains the XML data comprising the message being sent.
Fault: It provides the information on errors that occurred while during message
processing.
Application layer and transport layers of a network are used by SOAP; HTTP and
SMTP are the valid protocol of the application layer used as the transport for
SOAP. HTTP is more preferable, since it works well with the current Internet
infrastructure, in particular with firewalls.
The SOAP requests can be sent using an HTTP GET method while the
specification only contains details about HTTP POST.
• If an envelope includes a header element, it should not contain more than one.
• The SOAP envelope is indicated by the prefix ENV and the envelope element.
• The optional SOAP encoding is also specified using a namespace and the optional
encoding style element.
53. What are the major functionalities provided by the SOAP protocol class?
The SOAP protocol is used to provide simple access methods for all the
applications available on the Internet, providing the following functionalities:
• Call: A class which provides the main functionality for a remote method for
which a call is needed. It is used to create the call() and to specify the encoding
style of the registry that will be assigned when if necessary. This call() function
is used by the RPC call, which represents the options of the call object.
• Deployment Descriptor: A class used to provide the information about the SOAP
services. It enables easy deployment without the need for other approaches.
• DOM2 Writer: A class that serializes and uses DOM node as XML string to
provide more functionalities.
• RPC Message: A class used as the base class that calls and replies to the request
submitted to the server.
• Service Manager: A class that provides, lists and then outputs all SOAP services.
54. What are the web relation functionalities provided by SOAP protocol?
• HTTPUtils: This provides the functionality of the POST method to safely meet
the requirements.
• Parameter: It is an argument for an RPC call used by both the client and the
server.
• Response: It is an object that represents an RPC reply from both client and server,
but the result will not be displayed until after the method call.
• TCPTunnel: It is an object that provides the ability to listen on a specific port and
to forward all the host and port names.
• TypeConverter: It helps to convert an object of one type into another type and
this is called using the class in the form object.
55. How does the message security model allow the creation of SOAP more
secure to use?
The security model includes the given security tokens. These tokens comprise
digital signatures for protection and authentication of SOAP messages. Security
tokens can be used to provide the bond between authentication secrets or keys
and security identities. Security token uses the authentication protocols and an
X.509 certificate to define the relationship between the public key and identity
key. The signatures are used to verify the messages and their origin, generate
knowledge to confirm the security tokens to bind the identity of a person to the
identity of the originator. Security model prevents different attacks and can be
used to protect the SOAP architecture.
56. What is the difference between top down & bottom up approach in SOAP
Web services?
• Top down SOAP Web services include creating WSDL document to create a
contract between the web service and the client, with a required code as an option.
This is also known as Contract-first approach. The top-down approach is difficult
to implement because classes must be written to confirm the contract defined in
WSDL. One of the benefits of this method is that both client and server code can
be written in parallel.
• Bottom up SOAP web services require the code to be written first and then WSDL
is generated. It is also known as Contract-last approach. Since WSDL is created
based on the code, bottom-up approach is easy to implement and client codes
must wait for WSDL from the server side to start working.
• SOAP separates the encoding and communications protocol from the runtime
environment.
• Web service can retrieve or receive a SOAP user data from a remote service, and
the source’s platform information is completely independent of each other.
• Everything can generate XML, from Perl scripts through C++ code to J2EE app
servers.
• SOAP runs over HTTP; it eliminates firewall problems. When protocol HTTP is
used as the protocol binding, an RPC call will be automatically assigned to an
HTTP request, and the RPC response will be assigned to an HTTP reply.
SOAP is usually limited to pooling and not to event notifications when HTTP is
used for the transport. In addition, only one client can use the services of one
server in typical situations.
If HTTP is used as the transport protocol, firewall latency usually occurs since
the firewall analyzes the HTTP transport. This is because HTTP is also leveraged
for Web browsing, and so many firewalls do not understand the difference
between using HTTP within a web browser and using HTTP within SOAP.
SOAP is the heavyweight choice for Web service access. It provides the following
advantages when compared to REST:
• SOAP is not very easy to implement and requires more bandwidth and resources.
• SOAP message request is processed slower as compared to REST and it does not
use web caching mechanism.
• WS-Security: While SOAP supports SSL (just like REST) it also supports WS-
Security which adds some enterprise security features.
• If the security is a major concern and the resources are not limited then we should
use SOAP web services. Like if we are creating a web service for payment
gateways, financial and telecommunication related work, then we should go with
SOAP as here high security is needed.
REST is easier to use for the most part and is more flexible. It has the following
advantages when compared to SOAP:
• REST permits many different data formats whereas SOAP only permits XML.
• REST allows better support for browser clients due to its support for JSON.
• REST has better performance and scalability. REST reads can be cached, SOAP
based reads cannot be cached.
• REST is commonly used in social media, web chat, mobile services and Public
APIs like Google Maps.
• RESTful service returns various MediaTypes for the same resource, depending
on the request header parameter “Accept” as application/xml or application/json
for POST and /user/1234.json or GET /user/1234.xml for GET.
• REST services are meant to be called by the client-side application and not the
end user directly.
• ST in REST comes from State Transfer. You transfer the state around instead of
having the server store it, this makes REST services scalable.
60. What are the factors that help to decide which style of Web services –
SOAP or REST – to use?
Generally, REST is preferred due to its simplicity, performance, scalability, and
support for multiple data formats.
But you can read the following facts before opting for any of the styles.
• Does the service expose data or business logic? REST is commonly used for
exposing data while SOAP for logic.
• The requirement from clients or providers for a formal contract. SOAP can
provide contract via WSDL.
• Ease of use. REST based application is easy to implement, test, and maintain.
(Source: Google).