Write your tests in plain English, directly in your preferred testing tool.
Write automated browser tests in plain English
Carbonate turns simple language driven instructions into end-to-end tests.
At first run, Carbonate will automatically convert your tests into fixed test scripts.
When your HTML changes, Carbonate will generate a new test script.
No more brittle tests
Tweak your UI to your heart's content. As long as the behavior stays the same, Carbonate will figure out the changes just like a real user would.
Run directly from your existing test suite
public function testSelectTwoFromTheDropdown()
{
$this->carbonateSdk->load('https://carbonate.dev/demo-form.html');
$this->carbonateSdk->action('select Two from the dropdown')
$this->assertTrue(
$this->carbonateSdk->assertion('the dropdown should be set to Two')
);
}
Integrations ready to go
FAQs
What is the difference between a cached run and an extraction?
An extraction is the initial analysis and generation of the test script, which is then cached after the first successful run. Provided that your HTML has some semantic meaning, extractions will only be necessary when you change your UI.
Won't this slow down our test suite?
Carbonate's SDK caches the generated test script directly into your test suite, meaning that on subsequent runs, it will run as fast as hand-written tests.
How can I ensure tests are reliable?
Test scripts can be committed to your repository alongside your code. If your HTML structure changes significantly, you can delete the test scripts, and Carbonate will automatically generate new ones.
What if my page is dynamically rendered?
During the initial extraction, the SDK uses a combination of DOM mutation observers and spying on your network requests to determine when a page has finished loading. On subsequent cached runs, the SDK only needs to wait until the appropriate elements are available.
What if I need to do something advanced?
In these cases, you can interface with the browser directly between steps. We've made sure to design our SDK to fit around your existing setup, so you retain as much control as necessary.
Do I need coding knowledge to use this product?
You'll need to know a bit to integrate our SDK into your test suite, but it doesn't take long to get up and running. We're working on a tool that will let you run these with no integration necessary.
Speed up development; increase stability
Move fast and don't break things
End-to-end tests provide valuable assurance that your changes don't break existing functionality.
Unfortunately, they are notoriously fragile and slow to write. By outsourcing the hard work to Carbonate, you can spend less time testing and more time doing the things you love.
Empower your testing team
Manual testers are valuable resources, but they're restrained by the inability to automate their workflow.
Now, your testing team can work to their maximum potential, testing more features and, more importantly, catching more bugs.