📖 Documentation

Learn TestPilot

Everything you need to master automated browser testing and intelligent code generation

🚀

Getting Started

TestPilot is a powerful browser automation platform that records your interactions and generates production-ready test code automatically. Get up and running in minutes with these simple steps.

1

Create an Account

Sign up at TestPilot Registration to get started with your free account.

2

Create Your First Project

Navigate to the dashboard and create a new test project. Organize your tests into logical modules for better management.

3

Start Recording

Click "Start Recording" to launch the browser automation. TestPilot will automatically open your browser - no setup required.

4

Interact with Your Application

Click, type, navigate - every action is captured with intelligent selectors optimized for stability.

5

Generate Test Code

Stop recording and instantly get production-ready Cypress test code ready to run in your CI/CD pipeline.

⚙️

Features Overview

Browser Automation (Codegen)

TestPilot automatically launches browsers using Puppeteer, similar to Playwright's codegen feature. No manual browser setup required - just click record and start interacting.

💡 Pro Tip

TestPilot uses WebSocket for real-time event streaming, ensuring every interaction is captured instantly without delays.

Intelligent Selector Optimization

Our smart selector engine generates stable, maintainable selectors using priority-based selection:

  • data-testid - Preferred for test stability
  • Unique IDs - When available and stable
  • ARIA labels - Accessibility-friendly selectors
  • CSS classes - Stable class-based targeting
  • XPath - Smart fallback for complex elements

Real-Time Event Capture

WebSocket-powered real-time event capturing ensures no interaction is missed. Watch your test code generate live as you interact with your application.

💻

Code Generation Example

Here's an example of the production-ready code TestPilot generates from your recorded interactions:

Cypress
describe('Login Test Suite', () => { it('should login successfully', () => { // Navigate to login page cy.visit('https://example.com/login'); // Enter credentials cy.get('[data-testid="email-input"]').type('user@example.com'); cy.get('[data-testid="password-input"]').type('password123'); // Submit form cy.get('[data-testid="login-button"]').click(); // Verify successful login cy.url().should('include', '/dashboard'); }); });

The generated code follows best practices with proper comments, data-testid selectors, and clear test structure.

📁

Project Structure

TestPilot uses a three-level hierarchy to keep your tests organized and manageable:

📂 Project — Top-level container
📁 Module — Feature grouping
📄 Test Case — Individual test

Projects

Top-level containers for related test suites. Perfect for separating different applications or major features.

Modules

Organize test cases by feature, page, or functionality. Ideal for grouping related tests together.

Test Cases

Individual test scenarios containing recorded events, generated code, and version history.

🤝

Collaboration Features

Share your test projects with team members using role-based permissions:

👑
Owner
Full control over project settings and members
✏️
Editor
Can create, edit, and delete tests
👁️
Viewer
Read-only access to view tests
📚

Additional Resources

Explore more resources to get the most out of TestPilot: