Skip to main content

Configuration

Prowl QA configuration lives at .prowlqa/config.yml. All options with their defaults:

# The base URL for all hunt navigation
target:
url: "http://localhost:3000" # Required

# Browser settings
browser:
headless: true # false = show the browser window
slowMo: 0 # ms delay between actions (debugging)
timeout: 30000 # default page operation timeout
engine: "chromium" # chromium | firefox | webkit
channel: null # chrome, msedge, etc.
viewport: # or preset: "mobile" | "tablet" | "desktop"
width: 1280
height: 720

# What gets saved per run
artifacts:
screenshots: "on-failure" # "on-failure" or "all"
networkHar: false # save network activity as HAR
console: true # save browser console output
junit: false # generate JUnit XML report

# Hunt-level assertions (applied to every hunt)
assertions:
noConsoleErrors: true # fail on console.error
noNetworkErrors: true # fail on HTTP >= 400
maxTotalTimeMs: 30000 # max total time for all steps
networkIgnorePatterns: [] # URL substrings to ignore

# Safety guardrails
guardrails:
maxSteps: 50 # max steps per hunt
allowedDomains: # only navigate to these domains
- "localhost"
- "127.0.0.1"
- "0.0.0.0"
forbiddenSelectors: # selectors that steps cannot use
- "[data-danger]"
- ".delete-btn"

# Auth state from `prowlqa login`
auth:
storageStatePath: ".prowlqa/auth-state.json"

Section Reference

target

OptionTypeDefaultDescription
urlstring(required)Base URL for all relative navigation

browser

OptionTypeDefaultDescription
headlessbooleantrueRun browser in headless mode
slowMonumber0Milliseconds to wait between each action
timeoutnumber30000Default timeout for page operations
engine"chromium" | "firefox" | "webkit""chromium"Browser engine to use
channelstring | nullnullBrowser channel (e.g. "chrome", "msedge")
viewportobject | string{ width: 1280, height: 720 }Viewport size or preset ("mobile", "tablet", "desktop")

artifacts

OptionTypeDefaultDescription
screenshots"on-failure" | "all""on-failure"When to capture screenshots
networkHarbooleanfalseSave network activity as HAR file
consolebooleantrueSave browser console output
junitbooleanfalseGenerate JUnit XML report

assertions

OptionTypeDefaultDescription
noConsoleErrorsbooleantrueFail hunts on console.error
noNetworkErrorsbooleantrueFail hunts on HTTP >= 400
maxTotalTimeMsnumber30000Max total execution time in ms
networkIgnorePatternsstring[][]URL substrings to ignore for network error checks

guardrails

OptionTypeDefaultDescription
maxStepsnumber50Maximum steps per hunt
allowedDomainsstring[]["localhost", "127.0.0.1", "0.0.0.0"]Domains the browser can navigate to
forbiddenSelectorsstring[]["[data-danger]", ".delete-btn"]Selectors that steps cannot target
warning

Forbidden selectors use substring matching. Forbidding "delete" will also forbid selectors containing "undelete" or "delete-history".

auth

OptionTypeDefaultDescription
storageStatePathstring".prowlqa/auth-state.json"Path to saved auth state from prowlqa login

CLI Overrides

Several config options can be overridden from the command line:

prowlqa run <hunt> --headed          # Override headless: false
prowlqa run <hunt> --trace # Capture Playwright trace
prowlqa run <hunt> --slow-mo 500 # Override slowMo
prowlqa run <hunt> --url <override> # Override target.url
prowlqa run <hunt> --config <path> # Use different config file
prowlqa run <hunt> --browser chromium # Override browser engine
prowlqa run <hunt> --channel chrome # Override browser channel
prowlqa run <hunt> --viewport 1920x1080 # Override viewport size
prowlqa run <hunt> --include-tags smoke # Only run hunts with tag
prowlqa run <hunt> --exclude-tags slow # Skip hunts with tag
prowlqa run <hunt> --json # Machine-readable JSON output
prowlqa run <hunt> --junit # Generate JUnit XML report

Was this page helpful?