Couple of days back I was searching ways to Automate REST API, I was searching for tool which is open source, free and has good support. The first thing which I came across is Frisby.js
Frisby.Js is a framework for testing REST API built on node.js. (Yes, that means you will have use javascript)
Pros:
Frisby.Js is a framework for testing REST API built on node.js. (Yes, that means you will have use javascript)
Pros:
- It's fast and easy to use.
- It generated JUnit XML report.
Cons
- Doesn't have much facilities
- very limited support group.
However't that's what I feel, you can explore this and can comment if feels other wise. Now let me show you how to install it.
Installation
- First install the node.js from following location
http://nodejs.org/download/ - Now go the command line and install the frisby.js using npm (node package manager)
npm install -g frisby - You will also require to install jasmine as it is being used by frisby.js, Goto the command line and install jasmine using following command.
npm install -g jasmine-node - Now all is set, you can go ahead and create the test case.
Write Test Cases
- Now firsby.js is using jasmine, name of the test case file must end with spec.js.
- You also need to create the folder named spec and then folder names api inside that.
- Now copy the following file in spec/api.
- Please not that, the first line is the location of the code may change depends where frisby module is located on your local machine.
getHostDetails_specs.js.
In following test cases, we will get the details for yahoo.com site using freegeoip.com and then verify the JSON reponse.
var frisby = require('C:/Users/gaurang_shah/AppData/Roaming/npm/node_modules/frisby'); frisby.create('Get IP From Host Name') .get('http://freegeoip.net/json/yahoo.com') .expectStatus(200) .expectHeaderContains('content-type', 'application/json') .inspectJSON() .expectJSON({ country_code:"US", country_name:"United States", region_code: 'CA', region_name: 'Californ', city: 'Sunnyvale', zipcode: '94089', latitude: 37.4249, longitude: -122.0074, metro_code: '807', area_code: '408' }) .toss();
Run the Test Cases
- open the command prompt and make sure you are in the parent directory of spec/api folder.
- Enter the following command
jasmine-node spec\api\getHostDetails_spec.js - If you have multiple spec file and if you want to run all, then you can run using following command
jasmine-node spec/api
Results & Reports
- Above test case will fail, as we are expecting region_name to be Californ and actual is California.
- To Generate the Junit report, you just need to run the test cases using following command
jasmine-node spec/api/ --junitreport