Get Help Open Postman

[V10] End-to-end testing and API contract testing in Postman

Course 8 of 11 in QA Engineer Learning Path

Learn how to write different tests to ensure that your API is working as expected

rate limit

Code not recognized.

About this module

In this module, you will learn how to: 

  • Write test scripts to execute after the request
  • Write test suites in JavaScript
  • Write pre-request scripts to execute before the request
  • Set, retrieve, and clear variable values with scripts
  • Use dynamic variables insert dummy data
  • Use assertions with objects and arrays

Chapters70 mins

  • API Testing
  • Basics
  • Check your knowledge
  • Quiz: End-to-end testing and API contract testing in Postman
  • Challenge: Add simple tests to an existing Test Suite
  • Solution: Add simple tests to an existing Test Suite
  • Wrapping up
  • Resources
  • Recap

About this module

In this module, you will learn how to: 

  • Write test scripts to execute after the request
  • Write test suites in JavaScript
  • Write pre-request scripts to execute before the request
  • Set, retrieve, and clear variable values with scripts
  • Use dynamic variables insert dummy data
  • Use assertions with objects and arrays

Chapters70 mins

  • API Testing
  • Basics
  • Check your knowledge
  • Quiz: End-to-end testing and API contract testing in Postman
  • Challenge: Add simple tests to an existing Test Suite
  • Solution: Add simple tests to an existing Test Suite
  • Wrapping up
  • Resources
  • Recap
<> document.addEventListener('DOMContentLoaded', function () { try { var groups = window.skilljarUserStudentGroups; // Validate Skilljar group array if (!Array.isArray(groups) || groups.length === 0) { return; // No groups → show no logo } var suffix = '-portal'; var portalGroups = []; // Collect all groups whose name ends with "-portal" (case-insensitive) groups.forEach(function (g) { if (!g || !g.name) return; var nameLower = String(g.name).trim().toLowerCase(); if (nameLower.endsWith(suffix)) { portalGroups.push(g); } }); // No portal groups → show no logo if (portalGroups.length === 0) { return; } // Allowlist of supported portal slugs var allowedCompanies = ['postman', 'acme', 'contoso']; // Extend this list as new portal customers are added // Insert a logo for each portal group found portalGroups.forEach(function (pg) { var nameLower = pg.name.trim().toLowerCase(); // Strip "-portal" suffix var baseName = nameLower.slice(0, nameLower.length - suffix.length); // Normalize slug var slug = baseName .trim() .replace(/\s+/g, '-') // spaces → hyphens .replace(/[^a-z0-9-]/g, ''); // remove invalid chars if (!slug || allowedCompanies.indexOf(slug) === -1) { return; } insertLogo(slug); }); // ----------------------------------------- // Insert Logo Helper // (NO default fallback — slug must match) // ----------------------------------------- function insertLogo(slug) { var container = document.getElementById('customer-portal-logo'); if (!container) return; var elem = document.createElement('img'); elem.setAttribute('alt', 'Logo'); // Map slug → logo asset (examples) switch (slug) { case 'acme': elem.setAttribute('src', 'https://example.com/logos/acme-portal-logo.png'); elem.setAttribute('width', '375'); elem.setAttribute('height', '80'); break; case 'contoso': elem.setAttribute('src', 'https://example.com/logos/contoso-portal-logo.png'); elem.setAttribute('width', '349'); elem.setAttribute('height', '65'); break; case 'postman': elem.setAttribute('src', 'https://everpath-course-content.s3-accelerate.amazonaws.com/instructor%2Fc3jrngphf22ys6kxwfiw0g9kk%2Fpublic%2F1672880408%2Fpostman-orange-logo.1672880408868.png'); elem.setAttribute('width', '370'); break; default: return; // Do nothing — no logo } container.appendChild(elem); } } catch (e) { if (window.console && console.warn) { console.warn('Portal logo init failed', e); } } }); <>