We can use POSTMAN for REST API Testing
We can either download POSTMAN or Google chrome Add-ons
Pre Requisite Before Start To API Testing
1)POSTMAN
2)API URI
3)Payload for request
HTTP Requests methods require for API Testing using Postman
Create a record (POST)
Retrive/Verify Data (GET)
Update record (PUT)
Delete record (DELETE)
Domain :-https://www.google.com/
URI:- /search?source=hp&ei=NgQcXqDyNKfTz7sPpduz2Aw&q=selnium
EndPoint require for API Testing
Ex.
http://restapi.demoqa.com/utilities/weather/city/
Complete URI:-
http://restapi.demoqa.com/utilities/weather/city/Paris
Request Payload require for POST method
{
"FirstyName" : "Vaibhav",
"lastName" : "Khachane",
"UserName" :"tester",
"Password" : tester@123
"Email" :"test@gmail.com"
}
We should observe following things while doing API Testing manually
1)Response Body
2)Cookies
3)Header
4)Status Code
Practice API :
https://reqres.in/
https://restcountries.eu/
https://openweathermap.org/current
API Testing Validation
Reference API:-http://restapi.demoqa.com/utilities/weather/city/Paris
Step 1: Launch POSTMAN Tool
Step 2: Select GET Method and Enter API ex. "http://restapi.demoqa.com/utilities/weather/city/Paris"
Step 3: Click on SEND Button
Step 4: Verify Response Output Manually.
Now Add Verification Points
Step 5: Go to the "Test"
Step 6: Click on "Response headers:content-Type header check"
, It will add code example.
pm.test("Content-Type is present", function () {
pm.response.to.have.header("Content-Type");
});
Step 7: Modify Code as per our requirement. example
pm.test("Content-Type is present", function () {
pm.response.to.have.header("Content-Type");
});
Above Test Case will check content-Type
We can write test cases for other scenarios also
TC: To verify Status code
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
TC: To verify response time
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(1000);
});
TC : To verify response Objects
tests["City id is correct"]=responseBody.has("City");
tests["Temperature id is correct"]=responseBody.has("Temperature");
tests["Humidity id is correct"]=responseBody.has("Humidity");
tests["WeatherDescription id is correct"]=responseBody.has("WeatherDescription");
tests["WindSpeed id is correct"]=responseBody.has("WindSpeed");
tests["WindDirectionDegree id is correct"]=responseBody.has("WindDirectionDegree");
TC : To verify Response Values
pm.test("City Name is Correct", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.City).to.eql("Paris");
console.log("I am getting this value from API ",jsonData.City);
});
pm.test("Temperature value is correct", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.Temperature).to.eql("9.51 Degree celsius");
console.log("I am getting this value from API ",jsonData.Temperature);
});
pm.test("Humidity value is correct", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.Humidity).to.eql("70 Percent");
console.log("I am getting this value from API ",jsonData.Humidity);
});
pm.test("WeatherDescription value is correct", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.WeatherDescription).to.eql("broken clouds");
console.log("I am getting this value from API ",jsonData.WeatherDescription);
});
pm.test("WindSpeed value is correct", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.WindSpeed).to.eql("8.7 Km per hour");
console.log("I am getting this value from API ",jsonData.WindSpeed);
});
pm.test("WindDirectionDegree value is correct", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.WindDirectionDegree).to.eql("210 Degree");
console.log("I am getting this value from API ",jsonData.WindDirectionDegree);
});
We can view API return values on POSTMAN console . Following are steps
1)Go to view-> Show Postamn console
following line will help to fetch value on console
console.log("I am getting this value from API ",jsonData.City);
TC : To verify Schema
use tiny validator for JSON data
Use This Link to generate schema
var schema = {
"items": {
"type": "boolean"
}
};
var data1 = [true, false];
var data2 = [true, 123];
pm.test('Schema is valid', function() {
pm.expect(tv4.validate(data1, schema)).to.be.true;
pm.expect(tv4.validate(data2, schema)).to.be.true;
});
GUI for Test Result
POSTMAN Tool GUI
NOTE:- REST API support JSON format . It is also support XML , Text, HTML format. SOAP only support XML format.