Writing your first end-to-end test with Playwright

Posted on

Are you ready to dive into modern web automation? Whether you're a developer or a tester, Playwright is one of the most powerful tools to write fast, reliable end-to-end (E2E) tests for modern web applications. In this guide, we'll walk you through writing your first E2E test with Playwright - from setup to execution.


Let's get started!

What is End-to-End Testing?

End-to-End (E2E) testing simulates real user interactions in a browser. It tests your application from start to finish - including UI, APIs, and backend interactions - ensuring everything works together as expected.


Playwright makes E2E testing smooth by offering:

  • Support for multiple browsers (Chromium, Firefox, WebKit)
  • Auto-waiting for elements
  • Fast parallel execution
  • Rich features like network mocking, device emulation, and more

Step 1: Set Up Your Project

Before writing your first test, let's set up a Playwright testing environment.

Prerequisites

Make sure you have Node.js installed on your machine.

Initialize a New Project

npm init playwright@latest

This command will:

  • Install Playwright and its dependencies
  • Ask you a few setup questions (choose TypeScript or JavaScript based on your preference)
  • Set up a sample project with example tests

Once done, your folder structure will look like this:

my-playwright-project/ ├── tests/ │ └── example.spec.ts ├── playwright.config.ts ├── package.json └── ...

Step 2: Create Your First Test

Let's create a simple test that:

  • Opens a browser
  • Navigates to a website (e.g., https://playwright.dev)
  • Verifies the title of the page

Create a test file tests/firstTest.spec.ts

Type Script
Copy
import { test, expect } from '@playwright/test';

test('Verify Playwright homepage title', async ({ page }) => {
  // Navigate to the Playwright website
  await page.goto('https://playwright.dev');

  // Assert the title
  await expect(page).toHaveTitle(/Playwright/);
});

Step 3: Run the Test

Use the Playwright test runner to execute your test:

npx playwright test

You'll see output like:

Running 1 test using 1 worker ✓ tests/firstTest.spec.ts:3:1 › Verify Playwright homepage title (3s) 1 passed (3s)

Congratulations - you've just written and run your first Playwright E2E test!