API Test Automation Using Javascript – Devstringx
API Testing
API testing is basically testing the application programming interfaces (APIs), this is the process of testing the product in an early phase so that there can be low chances of breaking the application, it mainly focuses on testing the business logic or of the application without interacting with the user interface of the application.
Dependencies
Now, We will have to first install Node.js in our system, then we will install all the dependencies below. We can write API Automation scripts using JavaScript.
- SuperTest: SuperTest builds on top of SuperAgent, it is an HTTP request library. SuperTest adds an abstraction on top of the SuperAgent to easily test the API requests.
- Mocha: Mocha is a javascript framework for testing purposes that runs on Node.js.
- Chai: Chai is a library used for assertion in API testing, for browser and node.js that could be paired with any JavaScript framework.
Note: we are using Fake Api to explain to you, you can get these APIs from the websites
For Setting up the tests
Create a new test.js file in your root folder to write your API tests. For now, we will be using the following web URL to test the APIs.
https://payroll.raw-labs.com/home/info/api-json
Payroll Raw provides fake REST APIs for testing purposes
Now, let’s start with importing SuperTest in our test file and passing in the Payroll Raw URL for testing the application –
Setup Your Project
Before installing dependencies, initialize a new NPM project –
mkdir api-test-js && cd api-test-js
npm init -y
Install Given Dependencies:
npm install supertest mocha chai –save-dev
Writing API Tests:
GET Method
We will start with a writing test for getting requests. GET is used for getting the data from the server
Make a block to group the tests and name it ‘Users API’ as we will be working with the User’s API
Within the block, we will create an ‘it’ block to give a name to the test. Inside the ’it’ block we will start to write our Automation script
This is what a basic test will look like–
describe('students API', () => { it(''GET /students', () => { // Make a GET request to the users route return request.get('/users').expect(200); }); });
Chai Assertion
Now we can verify 200 OK responses, response time, response size, and much more verification by using Chai assertions. Let’s take a look below:
const assert = require('chai').assert;
First, we will import the Chai library. Here, We are using the assert interface from the Chai library.
it('GET /users', () =>{ // Make a GET request return request .get('/users') .expect(200) .then((response) => { // Below data is verifying the response should be be empty assert.isNotEmpty(response.body); }); });
Post Method
Using the POST Method, we can send data to the server to create a new resource. To create a new resource, we usually use the POST method which sends payload data to the server.
it('POST /registration', () => { constant data = { name:Diksha Gupta, email:[email protected]', }; return request .post ('/registration) .send(data) // send payload data .then((response) => { assert.hasAnyKeys(response.body, 'id'); assert.equal(response.body.name, data.name); assert.equal(response.body.email, data.email); }); });
Related Blog:-