Browser tests that understand your app

Carbonate lets you create auto-healing browser tests with no coding.

Record your tests by using your application in our remotely controlled browser.

Carbonate's unique AI engine will generate auto-healing test scripts from your recorded tests.

Run your tests using our cloud test runner or download for use within your own CI.

Create tests in seconds

Carbonate lets you create tests simply by using your application

No coding required, nothing to install, simply use your application like a real user would.

Carbonate will automatically detect your interactions and record them as part of your test.

Our intelligent AI recorder lets you create tests in seconds, without having to write any code.

Your application

My todo list

|
Detected: Type "Testing" into the todo field
Detected: Click on the add task button
Detected: Click on the clear task icon

Tests that heal themselves

When your application changes, Carbonate automatically updates broken tests

Testing based on HTML structure can lead to tests that break after every change.

By recording tests in plain English, Carbonate can automatically react to changes in your application.

Carbonate understands your application; working out changes to your application just like a real user would.

Loading...
|Click on "Get Started" in the menu
  1. Click
  2. //a[contains(text(), "Get Started")]
  3. //nav[contains(@class, "menu")]

Fast results, without the hassle

Run your tests instantly in the cloud

Console
Network
GET /login
00:57:36.789Z

End-to-end testing environments are often slow, painful to setup... and even worse to debug.

Carbonate runs your tests in parallel in the cloud, providing you with video playback, network requests, and console logs so you can see exactly what's happening.

No more guessing what went wrong.

No vendor lock-in

Your tests are a valuable part of your application. We generate tests for PHP, Python and JavaScript so that you can choose to run your tests on your own CI/CD platform*.

test("Select two from the dropdown", async () => {
    await sdk.load('https://carbonate.dev/demo-form.html');

    await sdk.action('select Two from the dropdown')

    expect(
        await sdk.assertion('the dropdown should be set to Two')
    ).toBe(true);
});

*Coming soon

Frequently asked questions

Do I need coding knowledge to use this product?

Not at all! We've designed Carbonate to be as easy to use as possible, so you can get up and running in minutes.

Will this slow down our test suite?

Carbonate only uses AI to generate your tests. The subsequently generated tests will run as fast as traditional, hand-written, tests.

How do I debug no-code tests?

All test runs are recorded along with their network, and console logs. If that's not enough, you can run the test live in our recorder and debug the test interactively so you know exactly what's going on.

What if my page is dynamically rendered?

No problem, as long as your HTML has some semantic meaning, Carbonate can work out the difference between a change in UI and simple rendering differences.

How do I record a test on my local machine?

We're working on making this easier, but for now, you can use ngrok's developer preview feature to record your test on your local machine.

Does it work with shadow DOM?

Yes, we've built-in full support for shadow DOM and many other browser features that are troublesome to test.

Try it for yourself by running a simulated test:
Simulated browser
*This is a smaller model for demonstration purposes, for the best results try the real thing.

Test your code.
Not your patience