Test Modes
Traces provides three testing modes for endpoints, each suited to different scenarios. Full Collection and Iterate modes use SSE streaming with real-time progress updates.
Overview
| Mode | Icon | Purpose | When to Use |
|---|---|---|---|
| Single Test | Play | Quick single request | Basic testing, debugging |
| Full Collection | Database | Collect all pages | Complete data capture |
| Iterate Test | Refresh | Run for each source value | Dependent endpoints |
Single Test
What It Does
Runs the endpoint once with configured parameters:
- Makes one HTTP request (or up to 3 pages if paginated)
- Returns response for inspection
- Saves sample to history
When to Use
- Initial endpoint testing
- Verifying authentication works
- Checking response structure
- Quick debugging
How to Run
- Select endpoint in tree
- Click Test button (play icon)
- View response in JSON viewer
Pagination Behavior
For paginated endpoints:
- Collects up to 3 pages
- Stops early if pagination ends
- Good for testing pagination config works
Full Collection
What It Does
Collects ALL available data by following pagination to completion:
- Follows pagination until stop condition
- Aggregates all pages into single response
- No configured page limit (safety caps of 100 pages and 10,000 items per endpoint)
- Uses SSE streaming for real-time progress
When to Use
- Capturing complete dataset
- Testing stop conditions work correctly
- Creating comprehensive sample for mapping
- Validating pagination configuration
How to Run
- Ensure pagination is configured
- Click Full Collection button (database icon)
- Progress modal shows real-time streaming updates
- View combined results when complete
Streaming Progress
The progress modal shows real-time counters via SSE:
- Pages collected: Current page number
- Items collected: Running total of items
- Elapsed time: Duration so far
- Stop condition status: Which condition will terminate collection
- Rate limit wait bar: Persistent bar showing delay between requests (when configured)
Stop Conditions
Collection stops when:
- Stop condition triggers (cursor empty, boolean flag, comparison)
- A safety cap is reached (100 pages or 10,000 items)
- Error occurs
- You click Stop
Iterate Test
What It Does
Runs the endpoint multiple times, once for each value from a source variable or mapping:
- Extracts values from dependency mapping or reusable variable
- Substitutes each value into parameters
- Collects all responses into array
- Uses SSE streaming for real-time progress
When to Use
- Testing dependent endpoints
- Processing each item from a parent list
- Collecting detail records for each ID
How to Run
- Configure a mapping with Iterate mode (or use a variable with iterate mode)
- Test the source endpoint first (need data to iterate)
- Click Iterate Test button (refresh icon)
- Progress modal shows streaming iteration progress
Example Flow
Source: GET /channels returns [{ id: "C1" }, { id: "C2" }, { id: "C3" }]
Mapping: channels[*].id -> channelId (iterate mode)
Target: GET /channels/{channelId}/messages
Iterate Test runs:
1. GET /channels/C1/messages
2. GET /channels/C2/messages
3. GET /channels/C3/messages
Result: Array of 3 message lists
Streaming Progress
Shows during iteration:
- Current iteration: e.g., "3 of 15"
- Success/fail/skip counts: Color-coded counters
- Rate limit wait bar: Shows delay between requests when rate limiting is configured
- Current parameter value: The value being used for this iteration
Result Structure
Iterate test returns an array of responses:
[
{ "messages": [...] }, // From C1
{ "messages": [...] }, // From C2
{ "messages": [...] } // From C3
]
This combined array is saved as the test result, useful for:
- Mapping to further downstream endpoints
- Verifying data collection across all items
Stop and Preserve
When you click Stop during a Full Collection or Iterate test:
- The test stops after the current request completes
- Already-received responses are preserved as a partial result
- The result is viewable in the response panel
- The sample is saved to history with
success: false - Useful for inspecting partial data without waiting for the full run
Pause and Resume
Streaming tests (Full Collection and Iterate) support pause/resume:
- Click Pause to pause the live progress view
- Incoming progress events are buffered client-side while paused
- Click Resume to flush the buffered events and continue following the stream
- Progress counters are preserved across pause/resume
Rate Limiting During Tests
Configure per-test rate limiting to avoid hitting API rate limits:
- Delay between requests (
delayMs): Milliseconds to wait between each request - Respect Retry-After (
respectRetryAfter): Automatically wait when receiving 429 responses
When rate limiting is active, a persistent rate limit wait bar appears in the progress modal showing the countdown between requests.
See Rate Limiting for configuration details.
Button Visibility
Test Button (Play)
Always visible when credentials are configured.
Full Collection Button (Database)
Visible when:
- Pagination is configured
- Pagination is enabled
Iterate Button (Refresh)
Visible when:
- At least one mapping has "iterate" mode
- Source endpoint has test data
Choosing the Right Mode
Use Single Test When
- First testing an endpoint
- Response structure is unknown
- Debugging authentication issues
- Quick verification needed
- Endpoint has no pagination
Use Full Collection When
- Need complete dataset
- Testing pagination thoroughly
- Creating sample for complex mappings
- Endpoint returns paginated lists
Use Iterate Test When
- Endpoint depends on array from another endpoint
- Need to test N:1 relationships
- Collecting details for each parent item
- Iterate mode mapping is configured
Result Handling
Sample History
All test modes save to sample history:
- Single: Saved as "Single" type
- Full Collection: Saved as "Full" type
- Iterate: Saved as "Full" type (array of responses)
- Stopped tests: Saved with partial results (
success: false)
Dependency Mapping
Test results from any mode can be used for mapping:
- Single: First-level extraction
- Full: Aggregated array extraction
- Iterate: Nested array of results
Error Handling
If a test fails:
- Error message displayed
- Previous sample data preserved
- Can retry or use cached data
Performance Considerations
Single Test
- Fastest mode
- Minimal API calls
- Low rate limit impact
Full Collection
- Can be slow for large datasets
- Many API calls
- Configure rate limiting to avoid 429 errors
Iterate Test
- N API calls (one per value)
- Can be very slow for large arrays
- Use rate limiting and consider filtering source array
Best Practices
Test Incrementally
- Start with Single Test to verify basics
- Run Full Collection to test pagination
- Use Iterate Test for dependent endpoints
Configure Rate Limits
Full Collection and Iterate modes make many requests:
- Set appropriate delay between requests
- Enable "Respect Retry-After" for 429 handling
- See Rate Limiting for details
Review Results
After any test:
- Verify response structure
- Check pagination stopped correctly
- Confirm expected data present
Troubleshooting
"Iterate button not visible"
- Check mapping has "iterate" mode set
- Verify source endpoint has test data
- Confirm mapping is configured correctly
"Full collection never stops"
- Review stop condition configuration
- Check hasMore/cursor paths are correct
- Verify API returns proper pagination signals
"Iterate test has many failures"
- Some IDs may be invalid/deleted
- Rate limiting may cause timeouts — configure delay between requests
- Permissions may vary per item
Related Documentation
- Pagination Configuration - Setting up pagination
- Dependency Mapping - Creating iterate mappings
- Sample History - Managing test results
- Rate Limiting - Configuring test rate limits