How karatelabs/karate works
Karate is a unified testing framework for API tests, mocks, performance tests, and browser automation. The primary workflow starts at the CLI, selects and parses feature files, executes scenarios and steps, then exposes results and reports. Separate branches cover mock servers, browser drivers, and Gatling integration; the runtime also includes HTTP, matching, JavaScript, and server-rendered markup capabilities. The README establishes the product scope, while the sampled sources are partial, so uncertain internal call wiring is omitted.
Main entry points: StepExecutor.java Step executor · Runner.java Test runner · Suite.java Suite execution · Main.java Karate CLI
Components 20
Test execution
- Karate CLI
karate-core/src/main/java/io/karatelabs/Main.java - Run command
karate-core/src/main/java/io/karatelabs/cli/RunCommand.java - Test runner
karate-core/src/main/java/io/karatelabs/core/Runner.java - Feature parser
karate-core/src/main/java/io/karatelabs/gherkin/GherkinParser.java - Suite execution
karate-core/src/main/java/io/karatelabs/core/Suite.java - Scenario runtime
karate-core/src/main/java/io/karatelabs/core/ScenarioRuntime.java - Step executor
karate-core/src/main/java/io/karatelabs/core/StepExecutor.java - Run results
- Report output
karate-core/src/main/java/io/karatelabs/output/HtmlReportListener.java
Shared runtime
- JavaScript engine
karate-js/src/main/java/io/karatelabs/js/Engine.java - HTTP client
karate-core/src/main/java/io/karatelabs/http/Http.java - Matchers
karate-core/src/main/java/io/karatelabs/match/Match.java
Testing integrations
- Mock server
karate-core/src/main/java/io/karatelabs/core/MockServer.java - Mock handler
karate-core/src/main/java/io/karatelabs/core/MockHandler.java - Browser driver
karate-core/src/main/java/io/karatelabs/driver/Driver.java - CDP transport
karate-core/src/main/java/io/karatelabs/driver/cdp/CdpClient.java - Gatling adapter
karate-gatling/src/main/java/io/karatelabs/gatling/KarateExecutor.java
Web capabilities
- Markup rendering
karate-core/src/main/java/io/karatelabs/markup/Markup.java - HTTP server
karate-core/src/main/java/io/karatelabs/http/HttpServer.java
Other components
- Engineer
Connections 16
- Engineer → Karate CLI: starts
- Karate CLI → Run command: dispatches
- Run command → Test runner: configures run
- Test runner → Feature parser: parses features
- Test runner → Suite execution: starts suite
- Suite execution → Scenario runtime: runs scenarios
- Scenario runtime → Step executor: executes steps
- Step executor → HTTP client: sends requests
- Step executor → Matchers: checks values
- Step executor → JavaScript engine: evaluates scripts
- Suite execution → Run results: records outcomes
- Run results → Report output: provides results
- Mock server → Mock handler: dispatches requests
- Browser driver → CDP transport: uses CDP
- Gatling adapter → Test runner: executes features
- HTTP server → Markup rendering: renders responses