
What Integration Tests Are
An integration test runs a sequence of endpoints as one workflow, with each step using data from the one before:Where Integration Tests Live in the UI
Integration tests have their own sidebar row, Test Cases → Integration Tests, next to Endpoint Tests. From there you can:- Browse the auto-assembled chains and open any one to see its steps
- Run all chains from the toolbar, or open a chain and rerun it on its own
- Refine a chain in chat (add a step, drop a step, change the sequence)
Why Integration Tests Matter
Endpoint tests verify each step in isolation; integration tests verify the handoffs. They catch the “individual endpoints work but the system doesn’t” bugs:Per-Chain View
Click into an integration test to see its detail page:
When a Chain Fails
Chains fail in three distinguishable ways:
See Endpoint Tests for how Blocked differs from Failed.
Auto Cleanup Pairing
After every run or rerun, even a passing one, TestSprite removes the records your chains created (users, orders, sessions), so the next run starts from a known-empty state. See Auto Cleanup. UI testing has the same idea, a use case with multiple steps, but runs browser actions instead of HTTP calls. See UI Testing.Edge Cases & Troubleshooting
No integration tests were detected
No integration tests were detected
Common when your API is mostly read-only or the initial plan had sparse hints. Re-run plan generation with a hint like “Generate integration chains that exercise create → read → update → delete on /orders”, or ask for specific multi-step flows in chat.
A chain looks wrong — wrong order, missing steps
A chain looks wrong — wrong order, missing steps
Open the chain and describe the right shape in chat: “The right order is POST /users → POST /sessions → POST /orders, not /users → /orders directly”. TestSprite re-runs with the corrected sequence.
A chain runs N steps then says 'Variable not found'
A chain runs N steps then says 'Variable not found'
A later step needs a value no earlier step provided. Common causes:
- Naming mismatch: an earlier step produces
user_idbut the later step referencesuserId. Refine in chat to align the names. - Missing field: the producer step Passed but its response didn’t include the field. Check its response in Stdout and refine to capture from a different field.
My chain runs faster than my API can handle (eventual consistency)
My chain runs faster than my API can handle (eventual consistency)
Add a wait in chat: “After the POST step, wait 250ms before the GET”.
A step passes on its own, but breaks the chain
A step passes on its own, but breaks the chain
The step has a side effect the chain didn’t account for, such as leaving a session active. Refine the step to clean up after itself, or add an explicit cleanup step: “After the GET step, DELETE the session created in step 2”.
Where to Go Next
Dynamic Variables
Where captured values surface in the UI
Dependency Chains
How run order is determined
Auto Cleanup
Records created during a run get deleted afterward