Browse the Knowledge Hub83 resources
Question Bank
82 Postman interview questions with answers
Eighty-two questions across the request builder, collections and folders, variable scopes and their precedence, pre-request and test scripts, assertions and schema validation, authentication, data driven runs, Newman and CI, mocks and monitors, collaboration and troubleshooting. Graded from fresher to lead, with the model answer, the follow-up to expect, and the trap that costs candidates the round.
All 82 questions, with model answers
Filter by level or topic, search the full text, and download the whole bank to revise offline.
Last updated
Experience level
Topic
Showing 82 of 82 questions
Q1FresherFundamentalsWhat is Postman and what is it used for?
What is Postman and what is it used for?
What they are assessing
Whether you see it as more than a request sender.
Model answer
Postman is an API development and testing platform. At the simplest level it sends HTTP requests and shows responses, but the parts that matter for testing are collections for organising requests into runnable suites, environments for switching between deployments, scripting for chaining requests and asserting on responses, the Collection Runner for data driven execution, and Newman for running the same collection in CI. It also does mock servers, monitors and documentation, though many teams use only the testing side.
Likely follow-up
Where does Postman stop being the right tool for API testing?
Q2FresherFundamentalsWhat are the main parts of a request in Postman?
What are the main parts of a request in Postman?
What they are assessing
Basic HTTP literacy through the tool.
Model answer
The method, the URL including path and query parameters, headers, the body where the method supports one, and the authorisation configuration which usually resolves into a header. Alongside those are the pre-request script tab, which runs before the request is sent, the tests tab, which runs after the response arrives, and the settings tab for per request options such as following redirects and SSL verification. Params, headers and body all support variables, which is what makes a request reusable.
Q3FresherFundamentalsWhat body types does Postman support and when do you use each?
What body types does Postman support and when do you use each?
What they are assessing
A practical detail people get wrong constantly.
Model answer
none for GET and DELETE. form-data for multipart submissions including file uploads. x-www-form-urlencoded for traditional form posts. raw, which is what you use for JSON, XML or plain text, selecting the subtype so the Content-Type header is set correctly. binary for sending a file as the whole body. And GraphQL, which gives a query and variables editor. The most common mistake is putting JSON in form-data or urlencoded, which sends it encoded and produces a 400 or 415 from the server.
Trap to avoid
Choosing raw but leaving the subtype as Text. The Content-Type header then says text/plain and most APIs reject it.
Q4FresherFundamentalsWhat is the Postman Console and why does it matter?
What is the Postman Console and why does it matter?
What they are assessing
Whether you know how to see what was actually sent.
Model answer
It shows the real request and response including resolved variables, every header actually sent, redirects followed, and anything logged with console.log from a script. It matters because the request builder shows what you configured, not what went out: a variable that failed to resolve appears as the literal placeholder in the console, which immediately explains a confusing 401 or 404. It is the first place to look for almost any unexpected result, and candidates who do not mention it usually have not debugged anything complicated.
Q5Mid-levelFundamentalsWhen would you not use Postman for API testing?
When would you not use Postman for API testing?
What they are assessing
Honest assessment of the tool boundary.
Model answer
When the tests need to live in the same repository and review process as the application, because collections are JSON that does not diff or review meaningfully, which pushes teams toward REST Assured, supertest or pytest. When the logic gets complex enough that you are writing substantial JavaScript in script tabs, at which point a real codebase with modules, reuse and unit tests is better. And for load testing, where JMeter or k6 are the right tools. Postman is excellent for exploration, contract checks and smoke suites.
Q6FresherRequestsWhat is the difference between path parameters and query parameters?
What is the difference between path parameters and query parameters?
What they are assessing
Basic API design literacy.
Model answer
Path parameters identify a resource and are part of the URL structure, such as the identifier in /users/123. Query parameters modify or filter the request and appear after the question mark, such as /users?status=active&page=2. In Postman, path variables are declared with a colon in the URL and get their own editing section, while query parameters appear in the Params table. The distinction matters because path parameters are usually mandatory and query parameters usually optional.
Q7FresherRequestsHow do you send a file in a Postman request?
How do you send a file in a Postman request?
What they are assessing
Practical mechanics.
Model answer
Use form-data as the body type, set the key type to File rather than Text, and select the file. Postman sets the multipart boundary and Content-Type automatically, so you should not set Content-Type manually or the boundary will be missing and the server will reject it. The thing to know for CI is that file paths are stored as absolute references and files are not included in an exported collection, so a Newman run needs the working directory configured and the file present on that machine.
Likely follow-up
Why does a file upload collection often fail when run through Newman in CI?
Q8Mid-levelRequestsHow does Postman handle cookies?
How does Postman handle cookies?
What they are assessing
Session handling knowledge.
Model answer
It maintains a cookie jar per domain, so cookies returned by one request are sent automatically on subsequent requests to that domain, which is what makes a session based login flow work without manual handling. You can inspect and edit the jar from the Cookies manager, and scripts can read and write cookies through pm.cookies. In Newman the jar behaves the same way within a run but does not persist between runs, which occasionally surprises people migrating a manual flow into CI.
Q9Mid-levelRequestsWhat request settings are worth knowing about?
What request settings are worth knowing about?
What they are assessing
Awareness of per request configuration.
Model answer
Follow redirects, which you turn off when you need to assert on a 302 and its Location header rather than the final page. SSL certificate verification, which you disable for self signed certificates in a test environment, though never as a blanket default. Maximum redirects. Encode URL automatically, which matters when a parameter contains characters the API expects unencoded. And follow original HTTP method on redirect, which affects whether a redirected POST becomes a GET.
Q10FresherCollectionsWhat is a collection and why organise requests into one?
What is a collection and why organise requests into one?
What they are assessing
The basic unit of work.
Model answer
A collection is a saved, ordered group of requests, optionally organised into folders. It turns a set of ad hoc calls into something runnable, shareable and versionable. It also gives you places to put shared behaviour: collection level authorisation applies to every request, collection level pre-request and test scripts run around every request, and collection variables are available throughout. Without collections you cannot run a suite, run it in CI, or share it meaningfully.
Q11Mid-levelCollectionsHow do you structure a collection for a real API?
How do you structure a collection for a real API?
What they are assessing
Organisation judgement.
Model answer
Folders by resource or by user journey rather than one flat list, with a setup folder at the top for authentication and any data creation, and a cleanup folder at the end. Shared behaviour goes at collection level: auth, common headers, and a test script asserting things that should hold for every response such as status being under 500 and response time being reasonable. Requests should be independent where possible, with any chaining explicit through variables rather than implicit through ordering.
Likely follow-up
How would you make a collection runnable in any order?
Q12Mid-levelCollectionsWhat runs at collection and folder level, and in what order?
What runs at collection and folder level, and in what order?
What they are assessing
Script inheritance knowledge.
Model answer
For each request, Postman runs the collection pre-request script, then the folder pre-request script, then the request pre-request script, sends the request, then runs the collection test script, the folder test script and the request test script. So shared setup belongs at collection level and applies everywhere without duplication. The common use is putting token acquisition and refresh in the collection pre-request script so no individual request has to think about authentication.
Q13SeniorCollectionsHow do you avoid a collection becoming unmaintainable?
How do you avoid a collection becoming unmaintainable?
What they are assessing
Long term thinking about a JSON artefact.
Model answer
Push shared logic up to collection level instead of copying it into requests, since copied scripts are the main source of decay. Keep environment specific values in environments rather than in requests. Use variables for base URLs and identifiers so nothing is hard coded. Keep script blocks short: if a test tab runs past thirty lines it probably belongs in a code based framework. And review periodically for requests nobody runs, because collections accumulate exploratory calls that were never meant to be part of the suite.
Q14FresherVariablesWhat variable scopes does Postman have?
What variable scopes does Postman have?
What they are assessing
A guaranteed question.
Model answer
Global, available everywhere in the workspace. Collection, available throughout one collection. Environment, which is the set you switch between deployments. Data, which comes from a CSV or JSON file during a Collection Runner or Newman run. And local, set within a script for the current request only. They are referenced the same way with double curly braces, and the scope determines where the value lives and how long it survives.
Q15Mid-levelVariablesWhat is the precedence order when the same variable name exists in several scopes?
What is the precedence order when the same variable name exists in several scopes?
What they are assessing
The detail that causes baffling bugs.
Model answer
Narrowest wins. Local overrides data, which overrides environment, which overrides collection, which overrides global. So a variable set in a script for this request beats one from the CSV, which beats the environment value. Knowing this matters because a leftover global with the same name as an environment variable behaves correctly, while a leftover local set in an earlier script does not, and the resulting failure looks like the environment is wrong when it is not.
Trap to avoid
Assuming environment beats everything. A local variable set in a script silently overrides it, and the console is the only place this is visible.
Q16Mid-levelVariablesWhat is the difference between an initial value and a current value?
What is the difference between an initial value and a current value?
What they are assessing
A collaboration detail with a security implication.
Model answer
The initial value is shared when the environment or collection is exported or synced to the team. The current value is local to your machine and is what actually gets used. That distinction exists so secrets are not shared: you put a placeholder in the initial value and the real token in the current value, and it does not leave your machine. The failure mode is the opposite: pasting an API key into the initial value, which then syncs to the whole team and into any export.
Likely follow-up
How would you check whether a collection you are about to export contains secrets?
Q17Mid-levelVariablesHow do you set and read variables from a script?
How do you set and read variables from a script?
What they are assessing
Basic scripting fluency.
Model answer
pm.environment.set and pm.environment.get for environment scope, pm.collectionVariables for collection scope, pm.globals for global, and pm.variables.set for a local variable. pm.variables.get reads across all scopes respecting precedence, which is usually what you want when reading. To unset, there is a corresponding unset method on each. Values are stored as strings, so an object needs JSON.stringify on the way in and JSON.parse on the way out, which is a frequent source of confusion.
Q18Mid-levelVariablesWhat are dynamic variables?
What are dynamic variables?
What they are assessing
Knowledge of built in data generation.
Model answer
Built in placeholders Postman resolves at send time, prefixed with a dollar sign: $guid for a UUID, $timestamp for the current epoch seconds, $randomInt, and a large set of realistic fakers such as $randomFirstName, $randomEmail and $randomCompanyName. They are useful for generating unique data in a request without writing a script, for example a registration body with a unique email each run. They resolve per use, so referencing the same one twice in a body produces two different values.
Trap to avoid
Expecting the same dynamic variable used twice in one request to produce the same value. It does not, which breaks password and confirm password fields.
Q19SeniorVariablesHow do you manage variables across several environments without duplication?
How do you manage variables across several environments without duplication?
What they are assessing
Practical environment strategy.
Model answer
Keep only genuinely environment specific values in environments: base URL, credentials, tenant identifiers. Everything shared goes in collection variables so it exists once. Use a consistent naming convention so a missing variable in one environment is obvious. For secrets, use current values or the Postman Vault in recent versions rather than storing them at all. And keep the environments symmetrical: a variable that exists in staging and not in production is the usual cause of a collection that works in one and fails confusingly in the other.
Q20FresherScriptingWhat is the difference between a pre-request script and a test script?
What is the difference between a pre-request script and a test script?
What they are assessing
Execution timing.
Model answer
A pre-request script runs before the request is sent and is used to prepare it: computing a signature, setting a timestamp, refreshing a token, or generating data. A test script runs after the response arrives and is used to assert on it and to extract values for later requests. Both are JavaScript running in Postman's sandbox, and both have access to the pm API. The naming is slightly misleading because the tests tab is really a post-response tab, and newer versions relabel it as such.
Q21FresherScriptingHow do you chain requests, passing a value from one to the next?
How do you chain requests, passing a value from one to the next?
What they are assessing
The single most common Postman task.
Model answer
In the first request's test script, parse the response and store what you need: const body = pm.response.json(); pm.environment.set("orderId", body.id). Then reference it in the next request as a variable in the URL, header or body. That is the correlation pattern and it is what turns a set of requests into a flow. The thing to add is a guard: if the extraction fails the variable keeps its previous value and the next request fails misleadingly, so asserting the value exists before setting it is worth doing.
Likely follow-up
What happens to the next request if the extraction silently returns undefined?
Q22Mid-levelScriptingWhat is pm.sendRequest and when do you use it?
What is pm.sendRequest and when do you use it?
What they are assessing
Knowledge of making calls outside the main request.
Model answer
It sends an HTTP request from within a script, asynchronously with a callback. The main use is authentication in a collection level pre-request script: call the token endpoint, store the token, and every request then has it without a dedicated request in the collection. It is also used for setup or cleanup that should not appear as a test result. The caveat is that it is asynchronous, so logic depending on the response must be inside the callback, and it does not appear in the run report.
Q23Mid-levelScriptingWhat is pm.setNextRequest and what are its limits?
What is pm.setNextRequest and what are its limits?
What they are assessing
Flow control knowledge and its dangers.
Model answer
It changes which request runs next in a Collection Runner or Newman run, taking a request name or null to stop the run. It enables conditional flows and retry loops. The limits matter: it only works during a collection run, not when sending a single request, it takes effect after the current script finishes rather than immediately, and it uses request names so renaming a request breaks it silently. Heavy use produces a collection whose execution order cannot be understood by reading it.
Trap to avoid
Expecting it to jump immediately. The rest of the current script still runs, which surprises people building retry logic.
Q24Mid-levelScriptingHow do you handle an authentication token that expires mid run?
How do you handle an authentication token that expires mid run?
What they are assessing
A real world scripting problem.
Model answer
Put the logic in the collection pre-request script: store the token and its expiry when obtained, then on every request check whether it is close to expiring and refresh with pm.sendRequest if so. That way no individual request carries authentication logic and a long run does not fail halfway. The alternative, reacting to a 401 in the test script and using pm.setNextRequest to retry, works but is messier and does not help the request that already failed.
Q25SeniorScriptingHow do you share utility functions across requests?
How do you share utility functions across requests?
What they are assessing
Whether you have solved the reuse problem.
Model answer
Postman has no module system in the sandbox, so the usual approach is defining functions in the collection pre-request script and storing them where later scripts can reach them, commonly by assigning to a global or by storing the function source as a variable and evaluating it, which is ugly. A cleaner option in recent versions is requiring supported libraries directly. My honest view is that once you need meaningful shared logic, that is the signal to move the suite into a code based framework rather than fight the sandbox.
Q26SeniorScriptingWhat JavaScript libraries are available in the Postman sandbox?
What JavaScript libraries are available in the Postman sandbox?
What they are assessing
Practical scripting knowledge.
Model answer
Lodash for data manipulation, Chai for assertions, Moment for dates in older versions, cheerio for HTML parsing, crypto-js for hashing and signing, tv4 and ajv for JSON schema validation, xml2js for XML, and atob and btoa for base64. They are available through require in the sandbox. crypto-js is the one that comes up most in real work, because APIs requiring a request signature are otherwise impossible to test from Postman.
Q27FresherAssertionsHow do you write a test in Postman?
How do you write a test in Postman?
What they are assessing
Core assertion syntax.
Model answer
With pm.test, which takes a name and a function containing the assertion. For example pm.test("status is 200", function () { pm.response.to.have.status(200); }). The name appears in the results, so it should describe what is being checked rather than being generic. Assertions use Chai's expect style through pm.expect, so you get a readable fluent API and useful failure messages. Several assertions can live in one pm.test, but a failure stops that block, so independent checks belong in separate blocks.
Q28FresherAssertionsWhat are the most useful assertions beyond status code?
What are the most useful assertions beyond status code?
What they are assessing
Whether your tests check anything meaningful.
Model answer
Response body content, asserting specific fields have expected values with pm.expect on the parsed JSON. Schema validation, confirming the structure and types match a contract rather than just spot checking fields. Response time, with pm.expect(pm.response.responseTime).to.be.below a threshold. Headers, particularly content type, caching and security headers. And the absence of things, such as a response not containing an internal identifier or a stack trace. Status alone passes on a 200 containing an error payload.
Trap to avoid
A collection where every test only asserts the status code. It passes while the API returns wrong data, which is the most common weakness in real Postman suites.
Q29Mid-levelAssertionsHow do you validate a response against a JSON schema?
How do you validate a response against a JSON schema?
What they are assessing
Contract level verification.
Model answer
Define the schema as a JSON Schema object, then use ajv in the sandbox to validate the parsed response against it, asserting the result is valid. Older collections use tv4, which still works but is unmaintained. Schema validation is more valuable than field by field assertions because it catches type changes, missing required fields and unexpected additions across the whole payload at once, which is precisely the class of breaking change that reaches consumers. Keeping the schema in a collection variable makes it reusable across requests.
Likely follow-up
Should schema validation fail when the API adds a new optional field?
Q30Mid-levelAssertionsHow do you assert on a value inside a nested array?
How do you assert on a value inside a nested array?
What they are assessing
Practical JSON handling.
Model answer
Parse the response with pm.response.json, then navigate normally in JavaScript. For finding a specific element, use find or filter rather than indexing, because array order is rarely guaranteed: const item = body.items.find(i => i.sku === "ABC"); pm.expect(item).to.exist; pm.expect(item.price).to.eql(1999). Asserting on items[0] is fragile and produces failures that look like defects when the API simply returned results in a different order.
Q31SeniorAssertionsHow do you make failures diagnosable in a Newman run?
How do you make failures diagnosable in a Newman run?
What they are assessing
Whether someone else can triage your failures.
Model answer
Descriptive test names that identify the case rather than repeating the endpoint. Assertion messages including the actual value, which Chai does automatically for eql but not for generic expressions. console.log of the relevant context on failure, since Newman surfaces console output. A reporter that includes the response body, such as htmlextra, which the default CLI reporter does not. And the request name including the data iteration where a data file is in use, otherwise forty failures all look identical.
Q32FresherAuthenticationWhich authentication types does Postman support?
Which authentication types does Postman support?
What they are assessing
Breadth.
Model answer
Basic, Bearer token, API key which can go in a header or query parameter, Digest, OAuth 1.0 and OAuth 2.0, AWS Signature, NTLM, Hawk, and the option to inherit from the parent or handle it manually with headers. The two that matter most in practice are Bearer, usually populated from a variable set by a token request, and OAuth 2.0 where Postman can perform the authorisation flow and manage the token for you.
Q33Mid-levelAuthenticationHow do you set up OAuth 2.0 in Postman?
How do you set up OAuth 2.0 in Postman?
What they are assessing
A flow candidates often only half know.
Model answer
Configure it at collection level so every request inherits it, choosing the grant type. For client credentials you supply the token URL, client id and secret, and Postman fetches the token. For authorisation code you also supply the auth URL, callback and scope, and Postman opens a browser for the user step. The token can be stored in a variable and auto refreshed. For CI, the authorisation code flow needs a browser so it does not work headless, which is why client credentials or a pre-fetched refresh token is used in pipelines.
Likely follow-up
How would you run an OAuth protected collection in Newman without a browser?
Q34Mid-levelAuthenticationWhere should credentials live in a Postman setup?
Where should credentials live in a Postman setup?
What they are assessing
Security hygiene.
Model answer
Not in the collection and not in initial values. They belong in environment current values, which stay local, in the Postman Vault where available, or injected at run time from the CI secret store as Newman environment variables. The reasons are that collections get exported, shared and committed, and that initial values sync to the whole team. I would also check that no test script logs a token to the console, because Newman output is usually captured as a build artefact.
Trap to avoid
Putting an API key in the initial value of an environment variable. It syncs to everyone and appears in every export.
Q35SeniorAuthenticationHow do you test authorisation rather than authentication?
How do you test authorisation rather than authentication?
What they are assessing
A distinction many candidates miss.
Model answer
Authentication tests confirm you can get a valid token. Authorisation tests confirm that token can only do what it should, which is where the real defects are. So I would run the same requests with tokens for different roles and assert the expected 403 for actions that should be denied, test accessing another tenant's or user's resource by identifier, and check that the API enforces this rather than relying on the UI hiding the option. Postman is well suited to this because you can parameterise the token and iterate over roles with a data file.
Q36FresherData drivenWhat is the Collection Runner?
What is the Collection Runner?
What they are assessing
Basic suite execution.
Model answer
It runs an entire collection or folder in order, optionally several iterations, optionally with a data file supplying different values each iteration, and with a configurable delay between requests. It produces a run summary showing each request and its test results. It is how you go from sending individual requests to running a suite, and it is the manual equivalent of what Newman does from the command line.
Q37Mid-levelData drivenHow do you run a collection with a CSV of test data?
How do you run a collection with a CSV of test data?
What they are assessing
Data driven mechanics.
Model answer
Select the CSV as the data file in the Collection Runner, and Postman runs one iteration per row with the column headers available as data scope variables referenced with double braces. The headers must match the variable names used in the requests exactly, including case. In scripts, the values are read with pm.iterationData.get. JSON files work too and are better when the data is nested, since CSV is flat. The number of iterations is set by the row count unless you override it.
Likely follow-up
Your CSV has a column named userId but the request uses userID. What happens?
Q38Mid-levelData drivenHow do you handle a data driven run where each row needs a different expected result?
How do you handle a data driven run where each row needs a different expected result?
What they are assessing
Practical parameterisation of assertions.
Model answer
Put the expected value in the data file alongside the input, then assert against it with pm.iterationData.get. That way one request covers valid and invalid cases: a row with a valid payload expects 201, a row with a missing field expects 400 and a specific error code. It keeps the logic in one place and makes adding a case a matter of adding a row. The alternative, branching inside the test script on the input, becomes unreadable quickly.
Q39SeniorData drivenHow do you keep data driven runs independent when they create records?
How do you keep data driven runs independent when they create records?
What they are assessing
Isolation thinking.
Model answer
Generate unique values per iteration rather than reusing fixed ones, using dynamic variables or a timestamp plus the iteration index, so parallel or repeated runs do not collide on unique constraints. Capture the created identifier and clean it up, either in the same iteration or in a teardown folder that iterates over collected identifiers. And avoid depending on the state left by a previous iteration, since the runner order is deterministic but a partially failed run leaves the collection in an unpredictable state.
Q40Mid-levelNewman & CIWhat is Newman?
What is Newman?
What they are assessing
The bridge to automation.
Model answer
Newman is the command line runner for Postman collections, installed through npm. It runs the same collection the Collection Runner does, taking the collection file or a URL, an environment file, a data file and reporter options. It is what makes Postman usable in CI, since it needs no GUI, exits with a non zero code when tests fail so the build fails, and can emit JUnit XML that the build system displays as test results.
Q41Mid-levelNewman & CIHow do you run a collection in a CI pipeline?
How do you run a collection in a CI pipeline?
What they are assessing
Pipeline integration.
Model answer
Install Newman, then run something like newman run collection.json -e environment.json -d data.csv -r cli,junit,htmlextra --reporter-junit-export results.xml. Publish the JUnit XML so failures appear as test results, and archive the HTML report as an artefact. Secrets come from the pipeline environment rather than the environment file, passed with --env-var. Referencing the collection by its Postman API URL rather than a committed file keeps it current, at the cost of a dependency on Postman being reachable from the runner.
Likely follow-up
Which would you prefer, a committed collection file or the API URL, and why?
Q42Mid-levelNewman & CIWhich Newman reporters do you use?
Which Newman reporters do you use?
What they are assessing
Practical reporting.
Model answer
cli for the console output that appears in the build log. junit for the XML the build system parses into a test report. And htmlextra, a community reporter, for a readable HTML report that includes request and response bodies, which the built in HTML reporter does not. That last point matters for triage: without the response body, a failure in CI usually cannot be diagnosed without rerunning locally, which defeats the purpose of running it in the pipeline.
Q43SeniorNewman & CIA collection passes in the Postman app and fails in Newman. What are the likely causes?
A collection passes in the Postman app and fails in Newman. What are the likely causes?
What they are assessing
A very common real problem.
Model answer
Variables that exist in your local environment but were not exported or passed, particularly current values which do not sync. Cookies or a token acquired earlier in the app session that Newman starts without. File paths for uploads that are absolute and do not exist on the runner. Network differences such as a proxy or restricted egress from the CI agent. SSL verification, which the app may have disabled locally. And requests depending on execution order that the app ran individually rather than as a collection.
Trap to avoid
Forgetting that current values do not export. The collection then runs with an empty token and every request returns 401.
Q44SeniorNewman & CIHow do you decide what belongs in the pipeline versus what stays manual?
How do you decide what belongs in the pipeline versus what stays manual?
What they are assessing
Proportionate automation.
Model answer
A fast smoke collection on every deployment, covering authentication and the critical endpoints, finishing in under a minute or two so it can gate. A broader functional collection on merge or nightly. Exploratory and one off requests stay out of the collection entirely, in a scratch collection or a personal workspace, because they accumulate and make the suite slow and noisy. The test is whether a failure would genuinely stop a release; if not, it does not belong in the gating run.
Q45Mid-levelMocks & monitorsWhat is a Postman mock server and when would you use one?
What is a Postman mock server and when would you use one?
What they are assessing
Knowledge beyond request sending.
Model answer
A mock server returns saved example responses for requests matching a collection, so consumers can develop against an API that does not exist yet or is unavailable. You create examples against requests, then create a mock from the collection. The realistic uses are unblocking front end development before the backend is ready, and testing client side error handling by returning responses that are hard to produce from the real service, such as a 503 or a malformed payload.
Likely follow-up
What is the risk of testing only against a mock?
Q46Mid-levelMocks & monitorsWhat is a monitor?
What is a monitor?
What they are assessing
Awareness of scheduled runs.
Model answer
A monitor runs a collection on a schedule from Postman's infrastructure, in chosen regions, and alerts on failure. The use is production health checking rather than pre release testing: confirming critical endpoints are up, responding within a threshold and returning correct data, from outside your network. It overlaps with proper synthetic monitoring tools, and for anything beyond a few endpoints a dedicated monitoring product usually fits better, but it is a quick way to get coverage using collections that already exist.
Q47SeniorMocks & monitorsHow do you use Postman for contract testing?
How do you use Postman for contract testing?
What they are assessing
A more advanced use.
Model answer
By validating responses against a schema derived from the API definition, so a change in structure fails the test rather than being noticed downstream. Postman can generate a collection from an OpenAPI specification, which keeps the requests aligned with the contract, and schema validation in the test scripts then asserts responses conform. It is lighter than a full consumer driven contract tool such as Pact, and it does not capture consumer expectations, so it catches provider drift rather than proving compatibility with each consumer.
Q48Mid-levelCollaborationWhat are workspaces and how do teams use them?
What are workspaces and how do teams use them?
What they are assessing
Team working knowledge.
Model answer
Workspaces are containers for collections, environments and mocks, and come as personal, team and public. Teams share a team workspace so everyone works against the same collections, with changes syncing. Personal workspaces are for exploration that should not pollute the shared set. Public workspaces are how vendors publish API collections. The practical caution is that changes in a team workspace are live for everyone immediately unless you use forks, so casual edits can break someone else's run.
Q49Mid-levelCollaborationHow does forking and merging work?
How does forking and merging work?
What they are assessing
Version control within Postman.
Model answer
You fork a collection to get your own copy, make changes there, then raise a pull request to merge back, with a review step. It is deliberately modelled on Git and it is the right way to make significant changes to a shared collection without breaking other people mid work. It is considerably weaker than Git in practice: the diff is structural rather than textual and merge conflicts are awkward, so the workflow suits occasional substantial changes rather than continuous parallel development.
Q50SeniorCollaborationShould collections live in Postman cloud or in your Git repository?
Should collections live in Postman cloud or in your Git repository?
What they are assessing
A real architectural decision.
Model answer
Both, with one designated as the source of truth. Keeping them in Git gives you review, history, branching alongside the application code, and a pipeline that does not depend on Postman being reachable. Keeping them in the cloud gives easier collaboration and the Postman tooling. The common arrangement is authoring in Postman and exporting to Git on a discipline, which drifts, or treating Git as authoritative and syncing, which loses some app convenience. I would pick Git as authoritative for anything that gates a release.
Likely follow-up
How would you keep a Git stored collection from drifting out of date?
Q51FresherTroubleshootingA request returns 401 when you expect 200. How do you investigate?
A request returns 401 when you expect 200. How do you investigate?
What they are assessing
Basic debugging method.
Model answer
Open the console and look at the request that actually went out. Check whether the authorisation header is present and whether the token variable resolved or was sent as a literal placeholder, which is the most common cause. Then check whether the token has expired, whether it is for the right environment, and whether the auth configuration is set on the request or inherited from the collection. Then confirm the endpoint requires the scope or role the token carries, since a valid token for the wrong role also returns 401 or 403.
Q52Mid-levelTroubleshootingA variable is not resolving. What do you check?
A variable is not resolving. What do you check?
What they are assessing
Variable debugging.
Model answer
Whether the environment is actually selected, since an unselected environment silently resolves nothing. Whether the name matches exactly, including case. Whether the value is in the current value rather than only the initial value, or the other way around. Whether a variable of the same name in a narrower scope is overriding it. And whether the script that sets it actually ran and succeeded, which the console will show. Postman also highlights unresolved variables in red in the request builder, which is the fastest first check.
Q53Mid-levelTroubleshootingTests pass individually but fail in a collection run. What is happening?
Tests pass individually but fail in a collection run. What is happening?
What they are assessing
The classic ordering problem.
Model answer
Usually state. A request depends on a variable set by an earlier request that failed or was skipped, so it runs with a stale value. Or data created by an earlier request now exists, so a create returns a conflict on the second run. Or a rate limit is triggered by the requests arriving in quick succession, which a delay between requests confirms. Or execution order assumptions that held when you clicked send manually in a different sequence. I would check the console for the first failing request rather than the first failing assertion.
Q54SeniorTroubleshootingHow would you debug an intermittently failing API test?
How would you debug an intermittently failing API test?
What they are assessing
Systematic handling of flakiness.
Model answer
Establish the pattern first: whether it correlates with time, with a specific data row, with concurrency or with a particular environment. Log the full response and the correlation identifier on failure so there is evidence to look at rather than a rerun. Check the server side logs for the same request identifier. The common causes are eventual consistency, where the test reads immediately after a write and the data has not propagated, rate limiting, and shared test data being modified by something else. Adding a retry without establishing which of those it is hides a real defect.
Likely follow-up
How would you test an API that is eventually consistent without adding fixed waits?
Q55SeniorTroubleshootingHow do you handle testing an API behind a corporate proxy or with self signed certificates?
How do you handle testing an API behind a corporate proxy or with self signed certificates?
What they are assessing
Environment configuration knowledge.
Model answer
Configure the proxy in Postman settings, or set the standard proxy environment variables for Newman. For self signed certificates, either add the certificate authority to Postman's trusted certificates, which is the correct approach, or disable SSL verification in settings, which is acceptable for a test environment and should never be the default for anything touching production. In CI the same applies through Newman flags, and the certificate should come from the agent's trust store rather than being disabled in the pipeline script.
Q56FresherRequestsWhat is the difference between PUT and PATCH, and how would you test each?
What is the difference between PUT and PATCH, and how would you test each?
What they are assessing
HTTP semantics through the tool.
Model answer
PUT replaces the resource with the payload supplied, so omitted fields should be cleared or defaulted. PATCH applies a partial update, so omitted fields should be left alone. Testing the difference means sending a payload with a subset of fields and then reading the resource back: with PUT the unmentioned fields should not retain their old values, with PATCH they should. Many APIs implement PUT with PATCH semantics, and that discrepancy is a legitimate and frequently found defect.
Q57Mid-levelRequestsHow do you test pagination?
How do you test pagination?
What they are assessing
Practical endpoint coverage.
Model answer
Assert the page size is respected, that the total count is consistent with the number of pages, that the first and last pages behave, and that requesting a page beyond the end returns an empty list rather than an error or the last page again. Then check for overlap and gaps by collecting identifiers across pages and confirming they are distinct and complete. And test stability under change, since offset based pagination with data being inserted produces duplicates and omissions, which is why cursor based pagination exists.
Q58Mid-levelCollectionsHow do you generate a collection from an API specification?
How do you generate a collection from an API specification?
What they are assessing
Spec driven workflow.
Model answer
Import an OpenAPI, Swagger, RAML or WSDL definition and Postman generates requests with paths, parameters and example bodies. It saves considerable setup and keeps the collection aligned with the contract. What it does not generate is meaningful tests or realistic data, so the generated collection is a starting point. Regenerating after a spec change overwrites customisations, which is why teams either keep generated and hand written collections separate or accept re-adding tests.
Q59SeniorScriptingHow do you sign a request that requires an HMAC signature?
How do you sign a request that requires an HMAC signature?
What they are assessing
A genuinely advanced but common requirement.
Model answer
In a pre-request script, using crypto-js from the sandbox. You construct the string to sign exactly as the API specifies, which usually involves the method, path, a timestamp and a hash of the body in a defined order, compute the HMAC with the secret, encode it as hex or base64 as required, and set it in a header with pm.request.headers.add. The difficulty is almost never the cryptography, it is matching the canonical string byte for byte, and the usual debugging technique is comparing against a known good example from the API documentation.
Q60Mid-levelAssertionsHow do you assert that a response time is acceptable, and is that a good idea?
How do you assert that a response time is acceptable, and is that a good idea?
What they are assessing
Judgement about performance assertions.
Model answer
With pm.expect(pm.response.responseTime).to.be.below a threshold. Whether it is a good idea depends on context: in a monitor or a smoke run against a stable environment it is a useful signal. In CI against a shared or containerised environment it is a reliable source of false failures, because the variance has nothing to do with the code. So I would either set the threshold generously as a hang detector rather than a performance gate, or measure performance properly in a dedicated test rather than asserting it incidentally.
Trap to avoid
Setting a tight response time assertion in a CI collection. It fails on a busy agent and the team learns to ignore red builds.
Q61Mid-levelVariablesHow do you store a complex object in a variable?
How do you store a complex object in a variable?
What they are assessing
A practical scripting detail.
Model answer
Variables hold strings, so you serialise with JSON.stringify when setting and parse with JSON.parse when reading. Forgetting this produces the string object Object, which is a recognisable symptom. For an array of identifiers collected across iterations, the pattern is reading the variable, parsing it, pushing, then stringifying and setting it back. It is workable but clumsy, and heavy use of it is another signal that the suite has outgrown Postman.
Q62SeniorData drivenHow would you run the same collection against several environments in one pipeline?
How would you run the same collection against several environments in one pipeline?
What they are assessing
Pipeline structuring.
Model answer
Invoke Newman once per environment file, either as separate pipeline steps or in a loop, with distinct report outputs so results are attributable. Keeping the environments symmetrical matters, so the same variable names exist everywhere and only the values differ. For a matrix across environments and data sets, the pipeline is the right place to express that rather than trying to encode it in the collection, which is the mistake that produces a collection nobody can follow.
Q63Mid-levelNewman & CIHow do you pass secrets to Newman without putting them in a file?
How do you pass secrets to Newman without putting them in a file?
What they are assessing
Secure CI practice.
Model answer
With the --env-var flag, supplying name and value pairs from the pipeline secret store, which override anything in the environment file. Alternatively with --global-var. The environment file committed to the repository then contains only non sensitive values and placeholders. I would also confirm the pipeline masks the values in logs, and that no test script logs the token, since build logs are frequently readable by more people than the secret store is.
Q64SeniorCollectionsHow do you test an API that requires a specific sequence such as create, update, delete?
How do you test an API that requires a specific sequence such as create, update, delete?
What they are assessing
Flow design.
Model answer
Keep the sequence within one logical test rather than spreading it across independent requests that must run in order, so the dependency is explicit. Create, capture the identifier, then use it for the subsequent calls, and delete in a cleanup step that runs regardless. Where the collection must be re-runnable, generating a unique resource each time avoids conflicts. The thing to avoid is a collection where request seven silently depends on request two, because it cannot be run partially and fails confusingly when someone reorders it.
Q65Mid-levelTroubleshootingThe API returns 200 but the test still fails. What do you look at?
The API returns 200 but the test still fails. What do you look at?
What they are assessing
Reading the actual failure.
Model answer
The assertion message, which usually names the mismatch directly. Then whether the response body shape is what the test assumes: an API returning a wrapped payload rather than a bare object breaks every path based assertion at once. Then type: a value returned as a string when the test expects a number fails an eql comparison even when it looks identical. And whether the response is actually for the request you think, since a proxy or a cached response can return something unexpected with a 200.
Q66SeniorAuthenticationHow do you test that an expired or tampered token is rejected?
How do you test that an expired or tampered token is rejected?
What they are assessing
Negative security testing.
Model answer
Keep a deliberately expired token and assert the API returns 401 rather than processing the request. Tamper with a valid JWT by altering a claim without re-signing and confirm rejection, which tests that the signature is actually verified rather than the payload merely decoded. Send a token signed with the wrong key, and one with the algorithm set to none, which is a known implementation weakness. Also confirm the error response does not leak whether the token was expired, malformed or simply unknown.
Q67Mid-levelScriptingWhat is the Postman visualizer?
What is the Postman visualizer?
What they are assessing
Awareness of a lesser used feature.
Model answer
It lets a test script render a custom HTML view of the response using pm.visualizer.set with a template and data, so a large JSON payload can be displayed as a table or chart in the Visualize tab. The realistic uses are making a complex response readable during exploratory work and producing a summary from a data heavy endpoint. It is presentation only and does not affect tests, so it is a convenience rather than something to build a workflow around.
Q68SeniorCollaborationHow do you keep a large shared collection from being broken by casual edits?
How do you keep a large shared collection from being broken by casual edits?
What they are assessing
Governance of a shared asset.
Model answer
Use forks and pull requests for anything beyond a trivial change, so edits are reviewed rather than live. Keep exploratory work in a personal workspace. Designate owners for areas of the collection so review has a natural reviewer. And run the collection in CI, because the strongest protection is that a broken collection fails a build immediately rather than being discovered by the next person who runs it manually. Governance that relies only on convention decays quickly once more than a few people have access.
Q69Mid-levelMocks & monitorsHow does Postman decide which example a mock server returns?
How does Postman decide which example a mock server returns?
What they are assessing
Detail knowledge of mocks.
Model answer
It matches on the request method and path, and where several examples exist it can be steered with the x-mock-response-name or x-mock-response-code headers to select a specific example or status code. Without that it picks the closest match, which surprises people expecting a particular error case. That header based selection is what makes mocks useful for testing client error handling, since you can deliberately request the 500 example rather than hoping for it.
Q70SeniorNewman & CIHow do you handle a collection that takes too long in CI?
How do you handle a collection that takes too long in CI?
What they are assessing
Optimisation.
Model answer
Split it: a small gating smoke collection on every build and the full suite nightly. Remove requests that were exploratory and never should have been in the suite. Reduce data file iterations to a representative set rather than every row. Remove artificial delays that were added to work around a race condition, and fix the race instead. Newman has no parallel execution within a run, so parallelism means splitting the collection across pipeline jobs, which also improves attribution when something fails.
Q71Mid-levelAssertionsHow do you write a test that must pass for every request in a collection?
How do you write a test that must pass for every request in a collection?
What they are assessing
Use of collection level scripts.
Model answer
Put it in the collection level test script, which runs after every request. Good candidates are asserting the status is not a 5xx, that the response has a content type, that the response time is below a generous hang threshold, and that the body does not contain a stack trace or an internal hostname. It gives baseline coverage across every endpoint for no per request effort, and it catches the class of failure where an endpoint nobody wrote a specific test for starts returning 500.
Q72SeniorVariablesHow do you avoid variable collisions in a large shared workspace?
How do you avoid variable collisions in a large shared workspace?
What they are assessing
Naming discipline at scale.
Model answer
Prefix by domain or collection so two collections do not both define baseUrl or token with different meanings, which is exactly what happens when globals are used casually. Prefer collection variables over globals, since globals are workspace wide and are the main source of these collisions. Clean up globals periodically. And document the expected environment variables somewhere visible, because the usual failure for a new joiner is a collection that needs six variables nobody listed.
Q73Mid-levelFundamentalsHow do you test a GraphQL API in Postman?
How do you test a GraphQL API in Postman?
What they are assessing
Coverage of a non REST style.
Model answer
Postman has a GraphQL body type with separate query and variables editors, and it can fetch the schema for autocomplete. The testing differences matter more than the mechanics: everything is a POST to one endpoint, so status code tells you little because GraphQL returns 200 with an errors array for failures. So the essential assertion is on the presence or absence of that errors array, not the status. Beyond that, test field selection, nested queries, mutations, and query depth or complexity limits.
Trap to avoid
Asserting only on status 200 for GraphQL. It returns 200 for most errors, so such a test passes on failure.
Q74SeniorTroubleshootingHow do you reproduce a failure a developer cannot see?
How do you reproduce a failure a developer cannot see?
What they are assessing
Collaboration and evidence.
Model answer
Share the exact request rather than describing it: export it as code with the code snippet generator, usually as curl, which they can run directly. Include the full response from the console, the environment used with secrets removed, and the correlation identifier from the response headers so they can find it in the logs. Most disagreements about API behaviour dissolve once both sides are looking at the same curl command, and the exercise often reveals that the two environments or tokens differ.
Q75Mid-levelData drivenWhat is the difference between iterations and a data file?
What is the difference between iterations and a data file?
What they are assessing
Precision about the runner.
Model answer
Iterations is simply how many times the collection runs. A data file supplies different values for each of those runs. If you set iterations to five with no data file, the collection runs five times identically, which is useful for checking stability or for creating multiple records with dynamic variables. With a data file, the iteration count defaults to the number of rows, and setting a lower number runs only the first rows, which is a handy way to do a quick check without editing the file.
Q76LeadCollaborationHow would you introduce Postman API testing to a team that has none?
How would you introduce Postman API testing to a team that has none?
What they are assessing
Adoption strategy.
Model answer
Start with the highest value narrow thing: a smoke collection covering authentication and the three or four endpoints that matter most, running in CI within a week. That demonstrates value and creates the habit. Then expand by area, with a convention for structure and naming agreed early because retrofitting it is painful. Keep it in the pipeline from the start rather than as a manual asset, because a collection that only runs when someone remembers becomes stale within a month and then gets abandoned.
Q77LeadFundamentalsWhen would you migrate a Postman suite to a code based framework?
When would you migrate a Postman suite to a code based framework?
What they are assessing
Knowing when the tool has been outgrown.
Model answer
When the signals accumulate: script tabs containing substantial logic, workarounds for the lack of a module system, a need for proper code review and branching, difficulty running the suite in parallel, or the suite becoming slow enough that splitting it matters. At that point REST Assured, supertest, pytest or similar give reuse, real tooling and repository integration. I would keep Postman for exploration and for the documentation and mock capabilities, since the two coexist well and migration does not have to be all or nothing.
Q78Mid-levelRequestsHow do you test rate limiting?
How do you test rate limiting?
What they are assessing
A commonly skipped area.
Model answer
Send requests in quick succession until the limit triggers and assert the API returns 429 rather than failing in some other way. Check the response includes the standard headers indicating the limit, remaining quota and reset time, and that they are accurate. Confirm the limit resets as documented. And check the scope of the limit: whether it is per token, per IP or per endpoint, since a limit applied per IP behaves very differently for users behind a shared gateway.
Q79SeniorScriptingHow do you handle an API that requires a fresh nonce or timestamp on every request?
How do you handle an API that requires a fresh nonce or timestamp on every request?
What they are assessing
Pre-request scripting in practice.
Model answer
Generate it in a collection level pre-request script so every request gets a fresh value without duplicating logic, setting it into a variable the request body or headers reference. Using the dynamic variable for a timestamp works for simple cases, but where the value must also feed a signature it has to be computed in the script so the same value is used in both places. That is the subtlety: generating it twice, once for the header and once for the signature, produces a mismatch and a confusing authentication failure.
Q80Mid-levelTroubleshootingHow do you capture traffic from an application into Postman?
How do you capture traffic from an application into Postman?
What they are assessing
Knowledge of the capture tooling.
Model answer
With the Postman proxy or the Interceptor browser extension, which capture requests into a collection or the history so you can inspect and replay them. It is useful for understanding an undocumented API or for reproducing exactly what a client sent. The same caveats as any recording apply: the captured requests contain session specific tokens and identifiers that must be parameterised before the collection is of any use, and they will include a lot of noise you do not want in the suite.
Q81SeniorAssertionsHow would you detect an unintended breaking change in an API?
How would you detect an unintended breaking change in an API?
What they are assessing
Regression thinking at the contract level.
Model answer
Schema validation on every response, so a removed field, a changed type or a newly required parameter fails immediately rather than being discovered by a consumer. Then assertions on the things a schema does not capture: status codes for known error cases, the shape of error payloads, and default behaviour when optional parameters are omitted. Running this on every build against the deployed environment is what turns it from a test into a guard. Additive changes should pass, which is why the schema should not forbid additional properties by default.
Q82LeadNewman & CIThe API suite is red most mornings and nobody investigates. How do you fix that?
The API suite is red most mornings and nobody investigates. How do you fix that?
What they are assessing
Restoring a broken signal.
Model answer
Find out what proportion of the failures are real, because that number is usually the reason nobody looks. If most are environmental or data related, the suite is not testing the API, it is testing the environment. So I would stabilise first: isolate test data, remove response time assertions that fail on load, fix the eventual consistency waits properly, and quarantine anything still unstable so the main run goes green. Then it has to stay green, which means a failure blocks and someone owns it that day. Green has to mean something before anyone will act on red.
Likely follow-up
What would you do if the failures turn out to be genuine API defects nobody is fixing?
What Postman interviews actually separate on
Sending a GET and reading the response takes a minute. These four areas decide the outcome, and all four come from running a collection in a pipeline rather than clicking send.
Variable precedence
Local beats data beats environment beats collection beats global. A leftover local silently overriding your environment is invisible outside the console.
Asserting more than status
A collection where every test checks only the status code passes while the API returns wrong data. It is the most common weakness in real suites.
Initial versus current value
Initial values sync to the whole team and appear in every export. Putting an API key there is the security answer interviewers listen for.
Knowing when to leave
Substantial logic in script tabs means the suite has outgrown the sandbox. Saying so reads as experience rather than disloyalty to the tool.
Written by engineers who run these in pipelines
This bank was written and reviewed by QAble API testing engineers who build Postman collections for client platforms and run them in CI, including the parts that go wrong: collections that pass in the app and fail in Newman because current values never export, suites red every morning that nobody investigates, and tokens logged to a build artefact everyone can read.
Answers are pitched at the level marked on each question. General API testing theory lives in the API testing bank, so nothing here is padding, and where Postman is the wrong tool we say so. If you think an answer here is wrong, we would genuinely like to hear it.
Tell us what we got wrongAPI suite not catching anything?
QAble builds API test suites that assert contracts rather than status codes, and run in your pipeline instead of on someone's laptop.
API testing servicesMore question banks
View allSoftware testing interview questions
Question bank82 questions for freshers through to lead, across fundamentals, the testing lifecycle, test design technique, defect management, agile practice and strategy.JMeter interview questions
Question bank82 questions across test plan elements, correlation, timers and pacing, distributed execution, results analysis and troubleshooting.ETL testing interview questions
Question bank82 questions across warehouse modelling, slowly changing dimensions, source to target validation, incremental loads and the SQL that verifies them.TestNG interview questions
Question bank82 questions across annotations and execution order, data providers and factories, groups, dependencies, parallel execution, listeners and the suite XML.Tosca interview questions
Question bank82 questions across modules and scanning, TestCase Design, reusable blocks, buffers and expressions, distributed execution and risk based testing.Cucumber interview questions
Question bank82 questions across BDD practice, Gherkin, step definitions and expressions, hooks, tags, data tables, shared state, parallel runs and the anti-patterns.Database testing interview questions
Question bank82 questions across schema and constraints, verification SQL, data integrity, transactions and isolation, indexes, migrations, security and NoSQL.Appium interview questions
Question bank82 questions across architecture, capabilities, locator strategies, drivers, gestures, hybrid contexts, parallel execution and troubleshooting.Manual testing interview questions
Question bank65 questions across fundamentals, test design, defect management, agile, scenarios and lead-level strategy, with model answers and follow-ups.Selenium interview questions
Question bank50 questions across WebDriver architecture, locators, waits and flakiness, interactions, framework design, Grid and CI, with model answers and follow-ups.Playwright interview questions
Question bank34 questions across architecture, locators, auto-waiting, assertions, fixtures, network mocking, tracing and parallelism.API testing interview questions
Question bank42 questions across HTTP semantics, schema validation, authentication, API security, tooling, contract testing and performance.Automation testing interview questions
Question bank30 tool-agnostic questions on what to automate, framework design, flakiness, CI/CD, test data, metrics and ROI.SDET interview questions
Question bank30 questions across coding, data structures, framework and system design, CI/CD, testability and quality strategy.Preparing for interviews, or need the API properly covered?
QAble builds and runs API testing with ISTQB-certified engineers, including contract and security coverage. Start with a free QA audit.