← Back to Engineering Notes

March 28, 2026

Multi-Target Testing, Real-World Spec Support, and Conformance Maturity

Versions 0.3.91 through 0.3.103 represent two weeks of intensive field testing with a community user running MockForge against production proxy infrastructure with 66+ targets and real-world OpenAPI specs from GitHub, Amazon S3, Xero, and custom enterprise APIs. The result is a significantly more robust tool for large-scale API testing.

Multi-Target Load Testing

MockForge now handles parallel load testing across dozens of targets reliably. Each k6 instance gets a unique API server port to prevent conflicts. The summary parser correctly handles k6 threshold exits and newer k6 versions that deprecated --summary-export. Per-target results are exported as both JSON and CSV for easy analysis.

mockforge bench --spec api.json --targets-file targets.json \
  --vus 2 --max-concurrency 20 -d 1800s --insecure

The JSON targets file supports per-target headers, auth tokens, and even per-target OpenAPI specs—critical when testing heterogeneous proxy deployments where each target needs different Referer or Origin headers.

Multi-Target Conformance

--conformance combined with --targets-file now runs conformance tests against each target sequentially, producing per-target reports and a combined summary. This enables validating API contract compliance across an entire fleet from a single command.

Real-World OpenAPI Spec Compatibility

Loading the GitHub API spec (1,078 routes) previously caused a panic due to conflicting parameter names at the same path position. MockForge now canonicalizes parameter names across the route tree, handling specs from GitHub, Xero, Amazon, and other large APIs without crashes. Swagger 2.0 specs with formData parameters are now properly converted to OpenAPI 3 request bodies.

HAR-to-YAML Generator

A new command converts browser HAR captures directly into custom conformance YAML:

mockforge har-to-conformance --har recording.har --output checks.yaml

This auto-detects the base URL, filters static assets, and extracts response headers and JSON body field types. The output plugs directly into --conformance-custom for regression testing against real API behavior.

Field-Level Schema Validation

Conformance failures now pinpoint exactly which field violated the schema—not just that validation failed. Each violation includes the JSON path, violation type, and expected vs actual values. This transforms schema errors from opaque failures into actionable diagnostics.

Quality-of-Life Improvements

What We Learned

This cycle was driven entirely by field feedback—a single user systematically testing against real infrastructure exposed assumptions that unit tests missed. k6’s deprecated --summary-export, matchit’s parameter name constraints, and Swagger 2.0’s formData semantics were all invisible until someone ran MockForge against production APIs at scale. The takeaway: real-world specs and real proxy topologies are the ultimate test suite.