What is an API?
a set of functions and procedures that allow the creation of applications
API is an acronym for Application Programming Interface.
It enables communication and data exchange between two separate software systems
HTTP Methods
GET -Requests data from a specified resource
POST -Submits data to be processed to a specified resource
HEAD -Same as GET but returns only HTTP headers and no document body
PUT
-Uploads a representation of the specified URI
DELETE -Deletes the specified resource
OPTIONS
-Returns the HTTP methods that the server supports
CONNECT
-Converts the request connection to a transparent TCP/IP tunnel
Swagger is a simple yet powerful representation of your RESTful API
Test Cases for API Testing:
Return value based on input condition:
Does not return anything:
Trigger some other API/event/interrupt:
Update data structure:
Modify certain resources:
What is JSON ?
JSON stands for JavaScript Object Notation
JSON is a lightweight data-interchange format
JSON is language independent *
JSON is "self-describing" and easy to understand
JSON Syntax Rules
JSON syntax is derived from JavaScript object notation syntax:
Data is in name/value pairs
Data is separated by commas
Curly braces hold objects
Square brackets hold arrays
JSON Values
A number (integer or floating point)
A string (in double quotes)
A Boolean (true or false)
An array (in square brackets)
An object (in curly braces)
null
Example:
"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter","lastName":"Jones"}
]
====================================================================
Advantage of API Testing
-Testing core functionality
-Time Effective / Quick Response time
-Language Independent
-Easy Integration with GUI
API Testing Tools:
PostMan
RestLet Client
SOAP UI
REST:
-Representational State Transfer
-Its not protocol
XML, JSON,
What is Rest-Assured:
-is an pen Source Java Domain-Specific Language [DSL]
-Supports both XML & JSON
-Can eliminate large amount of code to test complex API Response and output
REST-Assured Support other Request
-POST
-GET
-PUT-
-DELETE
-OPTIONS
-PATCH
-HEAD
*Only GET will give us data
*Other will make changes to server
http://rest-assured.io/
1.Creare Simple Maven Project
2.Add in pom.xml
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>rest-assured</artifactId>
<version>${rest-assured.version}</version>
</dependency>
https://mvnrepository.com/artifact/io.rest-assured/rest-assured/
2.Add package
3. Add class
Paste this code
public class getData {
@Test
public void testResponseCode() {
Response resp =RestAssured.get("http://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b6907d289e10d714a6e88b30761fae22");
int code =resp.getStatusCode();
System.out.println("Status Code is: " +code);
Assert.assertEquals(code , 200);
}
}
Oputput
Open API Example:
1. https://openweathermap.org/
- Sign In to get API Key
-here we will get JSON Data exmple
2. http://parabank.parasoft.com/parabank/services/bank/customers/12212
here we will get xml data
to try Postman
https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en
Select GET and paste
http://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b6907d289e10d714a6e88b30761fae22