Run Postman scripts on Jenkins with Docker

You can run Postman scripts from the command line with Newman, but if you want to run these scripts as part of your Continuous Integration environment, you can run it with Docker or directly on Jenkins.  In case you prefer to use Docker, you can get started by downloading the Jenkins Docker instance and changing the Dockerfile to include node using the following node installation code found in the Docker/Jenkins Repository:

# Install Node

RUN curl -sL https://deb.nodesource.com/setup_4.x | bash

RUN apt-get -y install nodejs

RUN node -v

RUN npm -v

RUN npm install -g newman

Then, you will need to rebuild the Docker image and start the container with the same instructions as in the Jenkins Docker Repository.

You should now have a fully working Jenkins instance installed locally. Great! Now back to the task at hand using the newly-installed instance of Jenkins:

  • Create a new “Freestyle” job in Jenkins.

You will set it up to be able to upload the collection as a parameter. When you do this with your own projects, you should commit the Postman collection into whatever repository you’re using and pull directly from that repository to build by selecting “this project is parametrized” and then choosing “Add Parameter” with a “File Parameter.”

 

  • Select two file uploads – one for the collection and one for the environment.

  • Add a post-build step with “Execute Shell”. You’ll use the same command you used to run it from your own command line earlier (If you are using the same OS) except your path should be collection.js, as you named it ‘newman run collection.json’ in the File Parameter name field.

 

  • Now test it and run the build. I just uploaded the collection.json since I’m not using the environment file yet, but you can add it to the command line with:
    newman run collection.json –e environment.json

 

If you want to use the built in JUnit Jenkins viewer, you can archive the XML test result and point the tests to it. Below there is a sample of how you might archive and use the JUnit test results.

Screen Shot 2018-09-01 at 07.30.50Screen Shot 2018-09-01 at 07.30.40

 

 

Resources: https://www.qasymphony.com/blog/automated-api-testing-tutorial/

2 thoughts on “Run Postman scripts on Jenkins with Docker

  1. Very helpful, thank you.
    I think you’re missing ‘–reporter-junit-export newman.xml’ at the end of your build command?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.