Issue
Currently I have an environment variable called URL, where I add the url that I need to use for each EndPoint that I have, however, I would like to know if it is possible to change this environment variable from Jenkins to indicate another url, for example wanting to work in environments already be it QA, DEV, Production, etc. If this is possible, how can I send that information to my collection (json) of environment variables?
This is my current JenkinsFile
pipeline {
agent any
stages {
stage('Running tests') {
steps {
echo 'Testing'
sh "newman run postman_collection.json -e .postman_environment.json"
}
}
}
}
Solution
You could use either --global-var
or --env-var
to pass data from Jenkins into the Collection.
If the {{foo}}
global variable were used in the Collection, it would resolve it to the bar
value.
--global-var "foo=bar"
For your Jenkins example, you would need something like this:
pipeline {
agent any
stages {
stage('Running tests') {
steps {
echo 'Testing'
sh "newman run postman_collection.json -e .postman_environment.json --env-var 'variableName=$JENKINS_VARIABLE'"
}
}
}
}
Answered By - Danny Dainton
Answer Checked By - David Marino (JavaFixing Volunteer)