.naplist Playlists (spec: naplist-file)
A .naplist file defines an ordered sequence of steps to execute. Steps can be .nap files, folders, other playlists, or F#/C# scripts.
Basic format (spec: naplist-meta, naplist-steps)
[meta]
name = Smoke Tests
description = Quick checks for core endpoints
[steps]
./health.nap
./users/get-users.nap
./users/create-user.nap
Full format (spec: naplist-meta, naplist-vars, naplist-steps)
[meta]
name = Full Regression Suite
description = Complete API test suite with setup and teardown
environment = staging
[vars]
baseUrl = https://staging.api.example.com
adminToken = {{ADMIN_TOKEN}}
[steps]
# Setup
./scripts/seed-data.fsx
# Core CRUD
./users/
./posts/
# Integration tests
./integration/auth-flow.naplist
./integration/payment-flow.naplist
# Cleanup
./scripts/teardown.fsx
Step types
.nap files (spec: naplist-nap-step)
Run a single HTTP request:
./users/get-user.nap
Folders (spec: naplist-folder-step)
Run all .nap files in a folder, sorted by filename (spec: collection-sort):
./users/
Nested playlists (spec: naplist-nested)
Run another .naplist file:
./regression/core.naplist
Nesting is recursive — playlists can reference other playlists.
F# and C# scripts (spec: naplist-script-step)
Run an orchestration script:
./scripts/setup.fsx
./scripts/setup.csx
Scripts can use the injected NapRunner to run requests and playlists programmatically. See F# Scripting or C# Scripting.
Variables (spec: naplist-var-scope)
Variables defined in [vars] are available to all steps. Steps can also set variables for downstream steps using F# or C# scripts.
Running playlists
From the CLI:
napper run ./smoke.naplist
With an environment:
napper run ./smoke.naplist --env staging
With JUnit output:
napper run ./smoke.naplist --output junit
From VS Code, click the Run button next to any playlist in the Playlists panel.