Fuzzilli vs Schemathesis
Fuzzilli
github.comSchemathesis
schemathesis.ioSide by side
| Figure | Fuzzilli | Schemathesis |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | — | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Fuzz Testing Software | 8.4 (#6) | 7.5 (#16) |
| Intended users | The project describes Fuzzilli as a tool for fuzzing dynamic language interpreters and invites patches and other contributions. | The maker presents Schemathesis for engineers testing OpenAPI or GraphQL APIs and integrating API tests into CI/CD. |
| License | The repository identifies its license as Apache-2.0. | The project repository states that Schemathesis is licensed under the MIT license. |
| Purpose | Fuzzilli is a coverage-guided fuzzer for dynamic language interpreters that mutates programs in FuzzIL and translates them to JavaScript. | Schemathesis generates property-based tests from OpenAPI and GraphQL schemas to find API bugs. |
Plans
In their own words
Fuzzilli
Fuzzilli is a free, open-source, coverage-guided fuzzer for dynamic language interpreters. It represents test programs in FuzzIL, mutates them, and translates them to JavaScript for execution. Its mutators can change data flow or operation parameters, generate or splice code, and combine corpus programs. Components include a mutation fuzzer, script runner, corpus, environment, minimizer, evaluator, and lifter. A target engine runs repeated scripts in a read-eval-print-reset loop, resetting between cases; multiple instances can synchronize within a process or across machines over TCP. Listed target directories include JavaScriptCore, JerryScript, QuickJS, QtJS, Serenity, SpiderMonkey, V8, XS, Duktape, and njs. Setup requires compiling a supported engine with coverage instrumentation using clang 4.0 or later, then building Fuzzilli with Swift Package Manager. Docker and Google Compute Engine tooling are provided. The project supports Linux, macOS, and self-hosted use and identifies its license as Apache-2.0. Its repository says it is not an officially supported Google product. Contributions require a Contributor License Agreement and are reviewed through GitHub pull requests.
Schemathesis
Schemathesis generates property-based tests from OpenAPI and GraphQL schemas to help engineers find API bugs. Its cases probe boundary values, type mismatches and constraint violations, and it validates API responses against the OpenAPI specification. For multi-step workflows, it chains operations using links inferred from a schema. During a run, it can learn validation rules, resource IDs and authentication requirements from server responses, then reuse them. Users can add Python checks for business rules alongside built-in checks. It supports OpenAPI 2.0, 3.0, 3.1 and 3.2, plus GraphQL schemas. Authentication options include Bearer tokens, Basic authentication and API keys, with environment variable substitution and Python hooks for dynamic flows. Integrations include a GitHub Action, Docker image, pip or uvx installation, and pytest. Reports can be exported as JUnit, VCR, HAR, NDJSON, JSON or Allure; failures can also be saved with curl commands for replay. The tool is self-hosted and licensed under MIT.