Skip to main content

Getting Started with Browser Testing

k6 browser tests allow you to simulate real user interactions with web applications, such as clicking buttons, filling out forms, and verifying page content. This helps you test not only backend performance, but also frontend reliability and user experience.

Prerequisites

Before you begin, you’ll need:
  • Basic knowledge of JavaScript or TypeScript
  • A code editor (Visual Studio Code or JetBrains)
  • A Chromium-based browser (such as Google Chrome) installed locally
  • k6 installed on your machine

Basic Structure

Every k6 browser script follows a common structure with these core components:

Key Concepts

Browser Type Configuration

A browser script must set options.browser.type in the options object:
If the browser type isn’t set, k6 will throw an error when executing your script.

Asynchronous Operations

Browser interactions (like navigation and clicks) are asynchronous, so your test must use async/await:

Locators

The Locator API finds and interacts with elements on a page:
Locators work with dynamic web pages and SPAs like React, finding elements even if the underlying frame navigates.

Write Your First Browser Test

Let’s create a browser test that loads a page, clicks a button, takes a screenshot, and verifies content.

Complete Example

Here’s the full script:

Run Your Test

Execute your browser test with:
For a headful browser (visible window), run:

Understanding the Output

After the test completes, you’ll see metrics like:
  • Checks - Assertion results
  • HTTP metrics - Request duration and failures
  • Browser metrics - Data sent/received, request duration
  • Web Vitals - FCP, LCP, CLS, FID, INP, TTFB

Extending Your Test

Once you’re comfortable with the basics, extend your browser test by:
  • Simulating complex user flows (multiple pages, form submissions)
  • Adding more checks and assertions to validate UI elements
  • Creating hybrid performance tests combining frontend and backend testing

Next Steps

How to Write Tests

Learn advanced browser testing patterns

Best Practices

Optimize your tests for reliability and maintainability