Postman cheat sheet
Postman has been my goto tool for API testing for the past year or so. When I hit a wall with using it I turn to All Things Postman. But I realized most of what I end up looking for is the basic stuff that covers 90 percent of my daily use in one place.
Environment Variables
pm.environment.set('someVariable', someValue)
pm.environment.get('someVariable')
pm.environment.unset('someVariable')
Lodash
//select random item from an array
_.sample([a, b, c])
//random number within a range
_.random(1, 10)
//repeat a command
_.times(5, () => {
//do stuff
})
Moment
const now = moment()
const tomorrow = moment().add(1, 'day')
JWT Token
const jwt = jsonData.access_token.split('.')
console.log(JSON.parse(atob(jwt[1])))
Tests
pm.test('example test', () => {
pm.expect(pm.response.code).to.eql(200)
pm.expect(pm.response.status).to.eql('OK')
const response = pm.resonse.json()
if response.length === null throw new ERROR( )
//verify response value
pm.expect(response.name).to.eql('Marc')
//verify a date is a valid date
pm.expect(moment(response.date).isValid()).to.be.true
//verify result matches a regex
pm.expect(response.name).to.match(/[A-Z}{1}[a-z]{3}/)
//verify type of object
pm.expect(response.name).to.be.a('string')
//verify a header value
pm.expect(postman.getResponseHeader('some-header'))
.to.eql('some-value')
})
Scripts
Send a post request
pm.sendRequest(
{
url: 'http://testurl',
method: 'POST',
header: {
'Content-Type': 'application/json'
},
body: {
mode: 'raw',
raw: JSON.stringify(someJSON)
}
},
(err, res) => {
console.log(err ? err : res.json())
}
)
Set next request (Note that this uses postman
object and
not pm
obect)
postman.setNextRequest('name of request')
Newman
//run a collection
newman run my_collection.postman_collection.json
//run with environment file
newman run my_collection.postman_collection.json
-e my_environment.postman_environment.json
//run with data file
newman run my_collection.postman_collection.jsonn -d data.json
//disable SSL validations (useful if running through a proxy)
newman run my_collection.postman_collection.json --insecure