Response headers tell us important details about the server's reply to our request. They help us understand how the server handled our request.
Response headers in Postman
pm.response.headers.get('Header-Name')Use the exact header name inside quotes to get its value.
Header names are case-insensitive but write them as they appear for clarity.
let contentType = pm.response.headers.get('Content-Type');
console.log(contentType);let server = pm.response.headers.get('Server');
console.log(server);let cacheControl = pm.response.headers.get('Cache-Control');
console.log(cacheControl);This test checks if the response header Content-Type exactly matches 'application/json'. If yes, the test passes; otherwise, it fails.
pm.test('Check Content-Type header is application/json', () => { let contentType = pm.response.headers.get('Content-Type'); pm.expect(contentType).to.eql('application/json'); });
Headers can have multiple values separated by commas; get() returns the full string.
If a header is missing, get() returns null, so check for that to avoid errors.
Use Postman Console to see header values during test runs for easier debugging.
Response headers give extra info about the server's reply.
Use pm.response.headers.get('Header-Name') to read headers in Postman tests.
Check headers to verify content type, caching, security, and more.
Practice
pm.response.headers.get('Content-Type') command do in Postman tests?Solution
Step 1: Understand the method purpose
The methodpm.response.headers.get()is used to read a specific header from the response.Step 2: Apply to 'Content-Type' header
Using'Content-Type'as the argument returns the value of that header from the server's reply.Final Answer:
It retrieves the value of the 'Content-Type' header from the response. -> Option DQuick Check:
pm.response.headers.get('Content-Type') = header value [OK]
- Confusing get() with setting headers
- Thinking it deletes headers
- Assuming it returns all headers
Solution
Step 1: Identify correct method to get header value
The method to get a header value ispm.response.headers.get('Header-Name').Step 2: Use strict equality to compare value
To check if the header equals 'no-cache', use=== 'no-cache'for exact match.Final Answer:
pm.response.headers.get('Cache-Control') === 'no-cache'; -> Option AQuick Check:
Use get() + === for header value check [OK]
- Using single = instead of === for comparison
- Trying to access headers like an object property
- Using non-existent has() method with two arguments
const server = pm.response.headers.get('Server');
pm.test('Server header is Apache', () => {
pm.expect(server).to.equal('Apache');
});What will happen if the response header 'Server' is actually 'nginx'?
Solution
Step 1: Understand the test expectation
The test expects the 'Server' header value to be exactly 'Apache'.Step 2: Compare actual header value
If the actual header is 'nginx', the expectationpm.expect(server).to.equal('Apache')will fail.Final Answer:
The test will fail because the header value is not 'Apache'. -> Option AQuick Check:
Expected 'Apache', got 'nginx' = fail [OK]
- Assuming test passes if header exists
- Confusing syntax error with assertion failure
- Thinking test skips on mismatch
pm.test('Content-Length is 1234', () => {
pm.expect(pm.response.headers.get('Content-Length')).to.equal(1234);
});But the test always fails even when the header shows '1234'. What is the likely problem?
Solution
Step 1: Check data types in comparison
The header value returned bypm.response.headers.get()is always a string.Step 2: Identify mismatch in expected value type
The test compares the string '1234' to the number 1234, causing the equality check to fail.Final Answer:
The header value is a string, but test compares to a number. -> Option CQuick Check:
Compare string to string to pass test [OK]
- Comparing string header to number directly
- Assuming header names are case-sensitive
- Believing get() cannot read standard headers
X-Security or if its value is not enabled. Which code snippet correctly implements this?Solution
Step 1: Check header existence explicitly
Usepm.response.headers.has('X-Security')to confirm the header is present.Step 2: Verify header value equals 'enabled'
Usepm.response.headers.get('X-Security')and compare with'enabled'usingto.equal().Step 3: Combine both checks in one test
Both conditions must be true for the test to pass, ensuring header presence and correct value.Final Answer:
Use has() to check presence and get() to check value. -> Option BQuick Check:
has() + get() ensures header exists and matches value [OK]
- Not checking header existence before value
- Using get() without verifying header presence
- Assuming get() returns undefined if header missing
Ready to prove it?
Pass the test and this pattern moves unknown
