Skip to main content

Welcome to Tracetest Docs! 👋

Tracetest is a trace-based testing tool for building integration and end-to-end tests in minutes using your OpenTelemetry traces. Assert against your trace data at every point of a request transaction.

👇 Getting Started

Set up Tracetest and start trace-based testing your distributed system.

🤩 Open Source

Check out the Tracetest GitHub repo! Please consider giving us a star! ⭐️

⚙️ Configure trace data stores

Connect your existing trace data store or send traces to Tracetest directly!

🙄 New to Trace-based Testing?

Read about the concepts of trace-based testing to learn more!

Why Tracetest?

You can:

  • Assert against both the response and trace data at every point of a request transaction.
  • Assert on the timing of trace spans.
    • Eg. A database span executes within 100ms.
  • Wildcard assertions across common types of activities.
    • Eg. All gRPC return codes should be 0.
    • Eg. All database calls should happen in less than 100ms.
  • Assert against side-effects in your distributed system.
    • Eg. Message queues, async API calls, external APIs, etc.
  • Integrate with your existing distributed tracing solution.
  • Define multiple test triggers:
    • HTTP requests
    • gRPC requests
    • Trace IDs
    • and many more...
  • Save and run tests manually and via CI build jobs.
  • Verify and analyze the quality of your OpenTelemetry instrumentation to enforce rules and standards.
  • Test long-running processes.
  • Write detailed trace-based tests as:
    • End-to-end tests
    • Integration tests
  • Build tests in minutes.

Visually - Build tests in the Web UI

Programmatically - Build tests in YAML

Architecture

Understand how Tracetest works.

  1. Trigger a test and generate a trace response.
  2. Fetch traces to render and analyze them.
  3. Add assertions to traces.
  4. See test results.
  5. Run tests as part of CI/CD pipelines.

Marketechture

Who uses Tracetest?

Our users are typically developers or QA engineers building distributed systems with microservices using back-end languages like Go, Rust, Node.js and Python.

What makes Tracetest special?

Tracetest can be compared with Cypress or Selenium; however Tracetest is fundamentally different.

Cypress and Selenium are constrained by using the browser for testing. Tracetest bypasses this entirely by using your existing OpenTelemetry instrumentation and trace data to run tests and assertions against traces in every step of a request transaction.