Core Concepts
Spectest revolves around a few simple ideas:
Test Case
A test case describes a single HTTP operation. At minimum it needs a name and an endpoint. Options such as request and response mirror the browser [Request] and [Response] objects.
| Key | Purpose |
|---|---|
name | Human readable name |
endpoint | Path relative to baseUrl |
operationId | Unique identifier; defaults to the name |
dependsOn | List of operationIds that must pass first |
Other fields like beforeSend, postTest, tags, delay and timeout allow advanced control.
Test Suite
Suites are files exporting an array of test cases or an object { name, tests }. The CLI loads every file matching filePattern inside testDir and runs the cases concurrently.
Configuration
Settings can come from spectest.config.js, a custom config file or CLI flags. The defaults are:
export default {
startCmd: 'npm run start',
baseUrl: 'https://localhost:8080',
testDir: './test',
filePattern: '\\.spectest\\.',
rps: Infinity,
timeout: 30000,
randomize: false,
happy: false,
filter: '',
runningServer: 'reuse',
userAgent: 'chrome_windows',
};If multiple suites define the same operationId, Spectest will exit with an error.Running Tests
The CLI takes care of starting your server (via startCmd), limiting the request rate and printing detailed results.