← back to portfolio
Case studies
Project write-ups
UI Regression Suite — SauceDemo (Swag Labs)
passed
SauceDemo is Sauce Labs' e-commerce demo app, widely used as a stable, purpose-built target for practicing UI automation. This suite covers the full shopper journey: login (including locked-out and problem-user edge cases), product sort/filter, cart operations, and checkout — the four flows most likely to break silently after a front-end change.
Built keyword-driven in Robot Framework so test cases stay readable as plain-English steps, with a shared keyword library handling login, cart state, and checkout to keep individual test files short and easy to review in a pull request.
Robot FrameworkPythonSeleniumLibraryJenkins
What it covers
- Login flows across all six SauceDemo user types (standard, locked-out, problem, performance-glitch, error, visual)
- Product sorting (name A–Z/Z–A, price low–high/high–low) with programmatic order verification
- Cart add/remove across single and multi-item flows, including badge count verification
- Full checkout: form validation, order summary math, and confirmation state
Notable catch
During development, the suite flagged that the "problem_user" flow silently swapped product images between items — caught by pixel-diff assertions before it could ship.
API Test Suite — Restful-Booker
passed
Restful-Booker is a public REST API built specifically for practicing API test automation (booking creation, auth, and CRUD operations for a fictional hotel). This suite treats it like a production API: every response is validated against a JSON schema, not just a status code, and auth token handling is tested for both the happy path and expiry/invalid-token cases.
PythonpytestrequestsGitHub ActionsAllure
What it covers
- Full CRUD on bookings (create, read, update, partial update, delete) with schema validation on every response
- Auth token generation, reuse across a session, and rejection of expired/invalid tokens on protected endpoints
- Negative testing: malformed payloads, missing required fields, invalid date ranges
- Data-driven parametrization across a matrix of booking payloads
Why schema validation
Schema checks catch breaking changes — a field silently disappearing or changing type — that a simple status-code check would miss, and that are easy to ship and hard to spot manually.
// Update these write-ups once the repos are live — swap in real screenshots, CI badges, and links to specific test files.