go install github.com/scrutineer/scrutineer/cmd/scrutineer@latestOr download a pre-built binary from Releases.
Create scrutineer.yaml in your project root:
version: "0.0.1"
tests:
- tests/api.test.yaml
parallelism: 4
timeout: 30s
reporters:
- type: ansi
telemetry:
enabled: true
output: scrutineer.logCreate tests/api.test.yaml:
suite: "API Smoke Tests"
tags: [api, smoke]
tests:
- name: "Health check returns 200"
connector: http
steps:
- action: request
method: GET
path: /health
assert:
- status: 200
- name: "Create user"
connector: http
steps:
- action: request
method: POST
path: /users
body:
name: "Alice"
email: "alice@example.com"
assert:
- status: 201
- body.name: {equals: "Alice"}
capture:
user_id: body.id
- action: request
method: GET
path: /users/${capture.user_id}
assert:
- status: 200
- body.email: {equals: "alice@example.com"}scrutineer run# Use a specific config file
scrutineer run --config path/to/config.yaml
# JSON output for CI
scrutineer run --format json
# Run tests with specific tags
scrutineer run --tags smoke
# Set parallelism
scrutineer run --parallelism 8
# View binary telemetry logs
scrutineer log-dump scrutineer.logScrutineer ships with these connectors:
| Connector | Name | Use Case |
|---|---|---|
| CLI | cli |
Test command-line programs |
| HTTP | http |
Test REST APIs, web endpoints |
| SSH | ssh |
Test remote systems |
| gRPC | grpc |
Test gRPC services |
| Browser | browser |
Test web UIs (Chromium, Firefox, WebKit) |
Each connector is configured in scrutineer.yaml under the connectors key and used in test files via the connector field.
- YAML Schema Reference — full test file syntax
- Connectors Guide — detailed connector configuration
- TLV Format — binary log format specification