Alert configuration in Postman - Build an Automation Script
pm.test('POST /api/alerts returns 201', function () { pm.response.to.have.status(201); const jsonData = pm.response.json(); pm.environment.set('alertId', jsonData.id); pm.expect(jsonData.type).to.eql(pm.variables.get('alertType')); pm.expect(jsonData.threshold).to.eql(pm.variables.get('alertThreshold')); pm.expect(jsonData.enabled).to.eql(pm.variables.get('alertEnabled')); }); // In GET /api/alerts/{{alertId}} request tests pm.test('GET /api/alerts/{{alertId}} returns 200', function () { pm.response.to.have.status(200); const jsonData = pm.response.json(); pm.expect(jsonData.id).to.eql(pm.environment.get('alertId')); pm.expect(jsonData.type).to.eql(pm.variables.get('alertType')); pm.expect(jsonData.threshold).to.eql(pm.variables.get('alertThreshold')); pm.expect(jsonData.enabled).to.eql(pm.variables.get('alertEnabled')); });
The first test script runs after the POST request to create an alert configuration. It checks the status code is 201, meaning the alert was created. It then parses the JSON response and saves the alert ID to an environment variable for reuse. It also verifies the returned alert settings match the expected values stored in variables.
The second test script runs after the GET request to retrieve the alert by ID. It checks the status code is 200, meaning success. It verifies the alert ID and settings in the response match the values saved earlier. This chaining ensures the alert was created and retrieved correctly.
Using environment variables for the alert ID and expected values allows easy reuse and maintenance. Assertions check both status codes and response content for full validation.
Now add data-driven testing with 3 different alert configurations
Practice
Solution
Step 1: Understand alert purpose in testing
Alerts are used to inform testers about issues or failures during tests.Step 2: Identify correct alert function
Alerts notify when test conditions fail, helping catch problems early.Final Answer:
To notify testers when a test condition fails -> Option AQuick Check:
Alerts = Notifications on failure [OK]
- Thinking alerts fix errors automatically
- Confusing alerts with documentation tools
- Assuming alerts improve response speed
Solution
Step 1: Identify correct test syntax
Postman uses pm.test() to define tests and pm.response.to.have.status() to check status.Step 2: Check alert usage
pm.alert() is not a valid Postman function; alerts come from test failures.Final Answer:
pm.test('Status is 200', () => pm.response.to.have.status(200)); -> Option AQuick Check:
Use pm.test with assertions [OK]
- Using pm.alert which does not exist
- Trying to call alert on response object
- Not using pm.test for assertions
pm.test('Response time is less than 500ms', () => {
pm.expect(pm.response.responseTime).to.be.below(500);
});What will happen if the response time is 600ms?
Solution
Step 1: Understand the test condition
The test expects response time below 500ms.Step 2: Analyze response time 600ms
600ms is above 500ms, so the condition fails and test fails.Final Answer:
The test will fail and an alert is triggered -> Option DQuick Check:
Fail if responseTime >= 500ms [OK]
- Assuming test passes despite failure
- Thinking alerts show on pass
- Confusing syntax error with test failure
pm.test('Check status', () => {
pm.expect(pm.response.status).to.equal(200);
});But the test always fails even when the API returns 200. What is the error?
Solution
Step 1: Check property for status code
Postman uses pm.response.code for status code, not pm.response.status.Step 2: Correct the property usage
Replace pm.response.status with pm.response.code to fix the test.Final Answer:
pm.response.status should be pm.response.code -> Option CQuick Check:
Use pm.response.code for status [OK]
- Using pm.response.status instead of pm.response.code
- Misusing pm.expect syntax
- Assuming API never returns 200 without checking
error set to true. Which test script correctly sets this alert?Solution
Step 1: Understand how to check JSON field in Postman
Use pm.response.json() to parse JSON, then assert field value.Step 2: Identify correct assertion syntax
pm.expect(...).to.eql(true) correctly asserts that error is true, triggering failure if not.Step 3: Evaluate options
pm.test('Error field check', () => { pm.expect(pm.response.json().error).to.be.false; }); expects error to be false, which is opposite of requirement; pm.test('Error field check', () => { const json = pm.response.json(); if(json.error === true) pm.alert('Error found'); }); uses invalid pm.alert; pm.test('Error field check', () => { pm.response.to.have.jsonBody('error', true); }); uses invalid method.Final Answer:
pm.test('Error field check', () => { const json = pm.response.json(); pm.expect(json.error).to.eql(true); }); -> Option BQuick Check:
Use pm.expect(...).to.eql(true) to assert error true [OK]
- Using pm.alert which does not exist
- Incorrect assertion methods
- Not parsing JSON before checking
Ready to prove it?
Pass the test and this pattern moves unknown
