A performance test doesn’t invent its own requests — it loops a collection you already have. Build that foundation first.
Create your performance testing workspace
Keep this practice collection and environment in one place so they’re easy to reopen when you run Performance later.
-
Open the Postman desktop app. If you don't have it yet, download Postman and sign in — if you're already signed in, you're good to go.
-
Click Workspaces in the top navigation → Create.
-
On the Create your workspace form, in Workspace name enter [Your name] - Performance Testing (e.g. Danny - Performance Testing).
text- Performance Testing -
For Who can access, open the dropdown and choose Only you and invited people — Internal is already selected.
-
Leave the template on Blank workspace (already selected), then click Create Workspace.
Troubleshooting: If validation fails, check that your workspace name ends with - Performance Testing and that you created it yourself.
Build the Coffee API load test collection
Under load, every virtual user loops your collection — including pm.test() assertions. Those tests are how you catch correctness problems under concurrency, not only latency spikes.
Create the collection
-
Confirm you're in your Performance Testing workspace.
-
In the left sidebar, click + → Collection.
-
Name it:
textCoffee API Load Test
Add your first request
- Select Coffee API Load Test, click ⋯ → Add request.
- Name the request Get Hot Coffee, leave method GET, URL:
{{baseUrl}}/coffee/hot- Open Scripts → Post-response, and add:
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});Add your second request
- Add Get Iced Coffee — GET
{{baseUrl}}/coffee/iced— with the same status-code test. - Save both requests.
Prefer Agent Mode?
Create a collection called "Coffee API Load Test" in my current workspace. Add two GET requests: "Get Hot Coffee" pointing at {{baseUrl}}/coffee/hot and "Get Iced Coffee" pointing at {{baseUrl}}/coffee/iced. Give each request a post-response test that asserts the status code is 200. Save everything.
Expected outcome: Two requests, each with a post-response status test. {{baseUrl}} is unresolved until the next step.
Add a Performance environment
Virtual users resolve the same environment variables as your manual sends. Putting baseUrl in an environment means you can point this load collection at staging or production later without rewriting URLs — and LiftOff can validate that the value is actually there.
-
In the left sidebar, click + next to Environments to create a new environment.
-
Name it:
textPerformance -
Add a variable named
baseUrl. If you don't see a Shared Value column, click the ⋯ menu at the far right of the variables table header, then under Show as column, check Shared Value. -
In the Shared Value column, enter:
https://api.sampleapis.comYou can put the same URL in the local Value column too — that’s what Postman uses when you Send on this machine.
- Click Save.
- Select Performance from the environment selector in the top right, then open Get Hot Coffee and click Send to confirm you get a
200 OKwith a JSON array of coffees.
How the values work: Every environment variable has two columns. Value stays on your machine; Shared Value is what the Postman cloud (and LiftOff) can read. If baseUrl only exists in Value, your local Send can work while validation still fails — and a Performance run that needs a shared environment can leave {{baseUrl}} unresolved.
Expected outcome: Get Hot Coffee returns 200 with coffee data, and baseUrl is set in Shared Value on the Performance environment.