Friday, May 30, 2014

REST API Testing using Frisby.js

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)

  • It's fast and easy to use. 
  • It generated JUnit XML report.
  • 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. 


  • First install the node.js from following location
  • 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. 

In following test cases, we will get the details for site using 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')
  .expectHeaderContains('content-type', 'application/json')
  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' 

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
    -node spec/api/ --junitreport