CodeceptJS

Modern End 2 End Testing for NodeJS

Scenario Driven

Write acceptance tests from user's perspective. Every command is described as an action of a user visiting a site.

Backend Agnostic

Use your favorite testing tool! Write test once and execute it differently. Should this be Selenium or Headless Chrome? Whatever you choose, the code is the same!

Interactive shell

Control browser in realtime with API of CodeceptJS. Click buttons, fill fields, try different locators inside a running test!

In Action

Quickstart »
Synchronous tests with async/await
Your test scenarios are linear, your test should be to.
PageObjects
PageObjects are essential to write stable and reusable code!
Web & Mobile Testing
Write your tests for web and and mobile applications using same API.
Cucumber-like BDD
Automate business scenarios as you do in CucumberJS
Beautiful Reports
Integrated with Allure reporter
Simplified Debug
Pause test at any point and use interactive shell.
Headless Tests
Run tests headlessly without Selenium using Puppeteer or NightmareJS
No Flaky Steps
Flaky steps to be retried automatcically
Multi-Session Testing
Run a test using several browser windows
CSS/XPath Locators

Locate elements by semantic values, CSS or XPath. Generate locators using Locator Builder

Parallel Testing

Tests are split into chunks and executed in multiple processes.

Data Management

Create and delete tests data using REST API. Generate seed data using rosie and faker libraries

Open-Source

Hosted on GitHub, MIT Licensed with friendly community