rafaelcahya.comLoading
000Portfolio ’26
rafaelcahya.com

Building E2E Test Automation with Playwright.

Overview
When I first started writing automated tests, everything was in one file — locators, actions, and assertions all mixed together. It worked, but it didn't scale. The moment a selector changed, I had to hunt through every test file to fix it. That's when I started learning about the Page Object Model (POM) pattern, and it changed how I approach test automation entirely. This article walks through how I structured an end-to-end test automation project using Playwright, POM, and a CI/CD pipeline with Jenkins.

What to Verify

The suite verifies end-to-end authentication flows in a modular way:

  • Login, registration, forgot password, and forgot login name, each with its own coverage.
  • Scenarios that need unpredictable input (e.g. a wrong password must trigger an error) use random data so it never accidentally matches a real account.
  • Consistent behavior across browsers (Chrome, Firefox, Edge).

How to Verify

  • Built with Playwright + Cucumber using the Page Object Model. Each feature has its own page class (locators and actions centralized).
  • Shared elements (e.g. the navbar) are extracted into a component file, so one change updates everything that uses it.
  • A dynamic data helper generates random strings and numbers for realistic but unpredictable input.
  • Credentials, error messages, and boundary values live in an .env file, not in test files, making it easy to switch environments and keeping sensitive data out of the codebase.
  • Cross-browser runs execute with a single command; screenshots are captured automatically and traces are saved on failure to speed up debugging.
Testing Stack
Playwright
Playwright
Cucumber
Cucumber
Jenkins
Jenkins
Next Project

API Load Testing with k6.

View Project→
Available for work

Let's build something worth shipping.