Continuous Integration (CI) is a practice that requires developers to integrate code into a shared repository several times a day. By committing early and often, the team avoids a ton of technical debt by allowing teams to detect problems early while conflicts are relatively easy to fix. Every check-in kicks off an automated build process which typically includes testing and (if your commit hasn’t broken anything) might include deployment too.
In general, integrating your Postman tests with your favorite continuous integration service is the same process if you’re running on Jenkins, Travis CI, AppVeyor, or any other build system. You will set up your CI configuration to run a shell command upon kicking off your build. The command is a Newman script that runs your collection with the tests, returning a pass or fail exit code that’s logged in your CI system.
In this example, we’ll walk through how to integrate Postman with Travis CI, a continuous integration service used to build and test projects hosted on GitHub. Travis CI will run your tests every time you commit to your GitHub repo, submit a pull request, or some other specified configuration.
testsplaced in the root of the project repository. Remember to add and commit these 2 files to your repo.
.travis.ymland move it to the root of your project repository. Remember to add and commit it to your repo. This file tells Travis CI the programming language for your project and how to build it. Any step of the build can be customized. These scripts will execute the next time you commit and push a change to your repo. In the
.travis.ymlfile, add a command to
installNewman in the CI environment, and then add a
scripttelling Newman to run the Postman tests (which I’ve placed in the
testsdirectory). Since Travis CI doesn’t know where Newman is located, let’s update the
PATH. In this node.js example, the
newmantool is located in my
.bindirectory which is located in my
.travis.yml file looks like this for this node.js example:
language: node_js node_js: - "8.2.1" install: - npm install newman before_script: - node --version - npm --version - node_modules/.bin/newman --version script: - node_modules/.bin/newman run tests/bitcoinz.postman_collection.json -e tests/tests.postman_environment.json
Travis CI is now set up to run your Postman tests every time you trigger a build, for example, by pushing a commit to your repo.
Let’s try it out. The Travis CI build status page will show if the build passes or fails:
Travis CI is running our Newman command, but we see a failed exit code (1). Boo.
Stay calm. Let’s review the logs in Travis CI. Newman ran our tests, we see the first and second tests passed, but the last test
Updated in the last day failed.
Let’s go back to our Postman collection and fix our
Updated in the last day test.
Once we fix the mistake in our test, let’s save the changes, update the repo with the latest collection file, and then trigger a Travis CI build once again by committing and pushing the change.
And it’s working! All our tests passed and the command exited with a successful exit code (0).