Postman contains a full-featured testing sandbox that lets you write and execute JavaScript based tests for your API. You can then hook up Postman with your build system using Newman, the command line collection runner for Postman. Newman allows you to run and test a Postman Collection.
Newman and Jenkins are a perfect match. Let’s start setting this up. We are using Ubuntu as a target OS as in most cases your CI server would be running on a remote Linux machine.
1. Install Jenkins.
Install NodeJS and npm. Newman is written in NodeJS and we distribute the official copy through npm. Install nodejs and npm for Linux.
Install Newman globally, to set up Newman as a command line tool in Ubuntu.
$ npm install -g newman
We are assuming that you already have a Postman Collection with some tests. Run the collection in the Postman app. This is what the output looks like in Postman’s collection runner.
Some of my tests are failing intentionally in the screenshot so we can show you the instructions for troubleshooting.
Run this collection inside Newman, using the command below. If everything is set up nicely, you should see the output below.
Jenkins exposes an interface at http://localhost:8080
.
Create a new job by clicking on the “New Item” link on the left sidebar > Select a “Freestyle Project” from the options > Name your project.
Add a build step in the project. The build step executes a Shell command.
The command is:
$ newman jenkins_demo.postman_collection --exitCode 1
Note here that we are using the Newman command parameter “exitCode” with the value 1
. This denotes that Newman is going to exit with this code that will tell Jenkins that everything did not go well.
Click the Save button to finish creating the project.
Run this build test manually by clicking on the “Build Now” link in the sidebar.
Jenkins indicates that the build has failed with a red dot in the title. We can check why with the console output from Newman.
Click on the “Console Output” link in the sidebar to see what Newman returned.
Fix these tests inside Postman and then try again.
You can move on once you see green pass icons for all your tests like the screenshot above.
Jenkins indicates that the build succeeded with a blue ball.
To set up the frequency with which Jenkins runs Newman, click on “Configure project” in the main project window and then scroll down.=. The syntax for setting the frequency is H/(30) * * * *
.
Note: 30 can be replaced with another number
Jenkins will now run Newman at your desired frequency and will tell you whether the build failed or succeeded. In a bigger setup, Newman will be part of your build process and probably not the entire process. You can set up notifications and customize Jenkins as per your needs.
You can use a wide variety of other configurations to make your collection more dynamic.