Skip to main content
Paragon generates tests using AI. Describe what you want to test, and Paragon writes the code. There are two ways to generate tests depending on the type.

Test Generation Methods

Test TypeMethodWhat It Creates
E2E TestsE2E BuilderStep-based browser tests
Code TestsAI AgentUnit/integration test files
PerformanceInline ConfigPerformance test with budgets

E2E Builder (Step-Based Tests)

The E2E Builder creates browser-based tests that run against your deployed application.

Creating an E2E Test

1

Go to Testing > Tests

Navigate to the Tests page
2

Click New Test

Click “New Test” button
3

Select Repository

Choose the repository for this test
4

Choose E2E

Select “E2E” as the test type
5

Open E2E Builder

You’re redirected to the visual builder

Building Steps

The E2E Builder provides a visual interface to create test flows:
StepDescriptionExample
NavigateGo to a URLhttps://myapp.com/login
RefreshReload current page
New TabOpen URL in new tab
Switch TabSwitch between tabs

Interaction Steps

StepDescriptionExample
ClickClick an elementButton, link, checkbox
TypeEnter text in inputForm fields
SelectChoose dropdown optionSelect menus
HoverHover over elementDropdown triggers
ScrollScroll to elementLazy-loaded content
Drag and DropDrag elementKanban boards
File UploadUpload fileFile inputs

AI Steps

Use natural language for complex interactions:
StepDescriptionExample
Paragon ActionAI performs action”Fill in the login form with test credentials”
Paragon CheckAI verifies state”Verify the user is logged in”
Paragon ExtractAI extracts data”Get the order ID from the confirmation”
AI steps are powerful for complex flows. Instead of specifying exact selectors, describe what you want in plain English.

Assertion Steps

StepDescriptionExample
WaitWait for time/elementWait 2 seconds
Wait for URLWait for navigation/dashboard appears in URL
Element CheckVerify element stateButton is visible/enabled
Page CheckVerify page contentText appears on page

Data Steps

StepDescriptionExample
Set CookieInject cookieAuth cookies
Local StorageSet localStorageFeature flags
Set HeaderAdd request headerAuth tokens

Authentication in E2E Tests

If your tests need to access protected pages, you can record your login flow directly in the E2E builder.

Setting Up Auth

In the E2E builder:
  1. Click the key icon to start recording authentication
  2. Log in to your app in the browser
  3. Paragon captures your auth session
  4. Save your test - the auth is saved with it
Future test runs will use the captured session to authenticate automatically.
Use a dedicated test account when recording authentication.

Running E2E Tests

E2E tests run against your deployed application (production, staging, or preview URL).
E2E tests cannot run on PR events because there’s no deployed app yet. They run:
  • Manually: Click run button
  • On Schedule: Daily, weekly, custom
  • On Push: After merge to production (if base URL is production)

E2E Test Results

After running, view:
  • Step-by-step breakdown: Each step with pass/fail and duration
  • Screenshots: Captured at each step
  • Video recording: Full test playback
  • Console logs: Browser console output
  • Network requests: API calls made during test
  • Accessibility violations: WCAG issues detected

Code Test Generation (Unit & Integration)

Generate unit and integration tests that live in your repository.

Creating Code Tests

1

Go to Testing > Tests

Navigate to the Tests page
2

Click New Test

Click “New Test” button
3

Select Repository

Choose the repository for this test
4

Choose Unit or Integration

Select the test type
5

Click Generate Tab

Switch to “Generate New” tab
6

Open Agent

You’re redirected to the AI agent
7

Describe Your Test

Tell the agent what to test in natural language
8

Review Generated Code

Agent creates the test file
9

Create or PR

Save directly or create a PR with the test

Writing Good Prompts

The better your prompt, the better the generated test.

Unit Test Prompts

Be specific about the function and expected behavior:
Test the calculateDiscount function:
- Returns 0 for orders under $50
- Returns 10% off for orders $50-$100
- Returns 20% off for orders over $100
- Throws error for negative amounts

Integration Test Prompts

Specify the endpoint, inputs, and expected outputs:
Test POST /api/users/register:
- Returns 201 and user object for valid email/password
- Returns 400 for invalid email format
- Returns 409 if email already exists
- Password is not included in response

Supported Frameworks

Paragon generates tests in your preferred framework:
LanguageFrameworks
JavaScript/TypeScriptvitest, jest, mocha
Pythonpytest, unittest
Gogo test
Rustcargo test
Rubyrspec, minitest
Javajunit, testng
C#xunit, nunit, mstest
C++gtest, catch2, ctest
Framework is detected from your project config or can be manually specified.

Code Test Results

After running, view:
  • Test output: Standard framework output
  • Assertion results: Each assertion with pass/fail
  • Coverage (if enabled): Lines covered by test
  • Duration: Time to run each test

Performance Tests

Create tests that measure page load performance.

Creating Performance Tests

1

Go to Testing > Tests

Navigate to the Tests page
2

Click New Test

Click “New Test” button
3

Select Repository

Choose the repository
4

Choose Performance

Select “Performance” test type
5

Add URLs

Enter pages to test
6

Set Budgets

Configure performance thresholds
7

Configure Conditions

Set network and CPU throttling
8

Run Test

Execute the performance test

Performance Budgets

Set thresholds for key metrics:
MetricDescriptionGood Target
LCPLargest Contentful Paint< 2.5s
FCPFirst Contentful Paint< 1.8s
CLSCumulative Layout Shift< 0.1
TTFBTime to First Byte< 0.8s

Test Conditions

Simulate real-world conditions: Network Throttling:
  • 4G (typical mobile)
  • Fast 3G
  • Slow 3G
  • No throttling
CPU Throttling:
  • No throttle
  • 2x slowdown
  • 4x slowdown
  • 6x slowdown
Iterations:
  • Run 1-10 times for consistent results

Test Organization

Suites

Tests are organized into suites (folders):
Repository: my-app
├── Suite: Authentication
│   ├── Test: Login flow (E2E)
│   ├── Test: Registration (E2E)
│   └── Test: validateEmail (Unit)
├── Suite: API
│   ├── Test: GET /users (Integration)
│   └── Test: POST /orders (Integration)
└── Suite: Performance
    └── Test: Homepage load
When creating a test:
  • Add to an existing suite
  • Create a new suite

Editing Tests

Click any test to:
  • Update name or description
  • Regenerate code with new prompt
  • Move to different suite
  • Delete test

Next Steps

Test Runner

Learn how tests run on PRs and pushes