/tracetest

Tracetest - Trace-based testing. End-to-end tests powered by your OpenTelemetry Traces.

Primary LanguageTypeScriptMIT LicenseMIT

Tracetest Logo Light Tracetest Logo Dark

End-to-end tests powered by OpenTelemetry. For QA, Dev, & Ops.

Live Demo |  Documentation |  Twitter |  Discord |  Blog

Click on the image or this link to watch the "Tracetest Intro Video" video (7 mins)

Overview

Testing and debugging software built on microservices architectures is not an easy task. Multiple services, teams, programming languages, and technologies are involved. We want to help you write tests across all this complexity by leveraging your existing investment in OpenTelemetry tracing.

Tracetest makes it easy:

  1. Pick an API to test.
  2. Run a test, and get the trace.
  3. The trace is the blueprint of your system under test. It shows all the steps the system has taken to execute the request.
  4. Use this blueprint to define assertions through Tracetest UI.
  5. Add assertions on different services, checking return statuses, data, or even execution times of a system.
  6. Run the tests.

Assertions

Once the test is built, it can be run automatically as part of a build process. Every test has a trace attached, allowing you to immediately see what worked, and what did not, reducing the need to reproduce the problem to see the underlying issue.

System Diagram

Try the demo & give us feedback

We have a live demo environment with a couple systems you can test against. Use the 'Try The Demo' button below to launch it. You will need to know the urls you can test against - here are some examples that work:

System Description URL Method Request Body
Shopping app Generic get http://shop/buy GET
Pokemon Microservice Get a Pokemon http://demo-pokemon-api.demo.svc.cluster.local/pokemon?take=20&skip=0 GET
Pokemon Microservice Add a Pokemon http://demo-pokemon-api.demo.svc.cluster.local/pokemon POST { "name": "meowth", "type": "normal","imageUrl": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/052.png","isFeatured": true}
Pokemon Microservice Import a Pokemon http://demo-pokemon-api.demo.svc.cluster.local/pokemon/import POST { "id": 52 }

More documentation about the installed Pokemon Microservice App, PMA, is at Pokemon Microservice App github

Wanna play with it? Try the Live Demo

button

We’re looking for feedback to help make Tracetest even better for developers, QA testers, and DevOPs. Please give us feedback on Discord or create an issue on Github

Getting Started

Check out the Installation and Getting Started guides to set up Tracetest and run your first tests! It is still a 'work in progress' so please provide us with any and all feedback - we live for input and will respond!

We are in the our early days with the project and need your help. Have an idea to improve it? Please Create an issue here or join our community on Discord.

Follow us on Twitter at @tracetest_io for updates

Give us a star on Github if you're interested in the project!

Documentation

Is available at https://kubeshop.github.io/tracetest