rafaelcahya.comLoading
000Portfolio ’26
rafaelcahya.com

E2E Test Automation with WebdriverIO.

Overview
WebdriverIO is one of the most powerful tools for automating web application testing. It controls a real browser, interacts with your app the same way a user would, and tells you exactly what passed and what didn't. In this article, I'll walk you through how I built a WebdriverIO automation suite from the ground up — the structure, the patterns, and the real test code behind it.

What to Verify

This suite verifies the end-to-end flows of a demo e-commerce site (automationteststore):

  • Login. Valid credentials sign in successfully; invalid credentials show an error message.
  • Register. Every form validation rule (first/last name, email, address, city, region, ZIP, login name, password) for empty values, below/above character limits, duplicate login name, masked password, password not matching confirm, and unchecked privacy policy.
  • Register happy path. Valid data redirects to the success page.
  • A clean session between tests, and randomized test data with no collisions.

How to Verify

  • Built with WebdriverIO + Mocha using the Page Object Model. Selectors and actions are separated from test scenarios.
  • The browser is configured via an environment variable (BROWSER=chrome), so tests run across browsers without changing config.
  • Tests are grouped into suites (login, register, e2e) to run individually or as a full run.
  • Unique data (name, email, phone, login name) is produced by a random generator so registration never collides.
  • beforeEach/afterEach maximize the window and open a fresh homepage, then delete cookies and refresh after each test.
  • Results are reported through Allure Report (pass/fail, duration, error screenshots).
Testing Stack
WebdriverIO
WebdriverIO
Jenkins
Jenkins
Allure Report
Allure Report
Next Project

API Load Testing with k6.

View Project→
Available for work

Let's build something worth shipping.