Skip to content

pgondim/qa-test-pedrogondim

Repository files navigation

QA Automation Engineer Take-Home Test - Tattle

This project contains automated tests developed with Playwright and TypeScript to demonstrate knowledge in UI and API test automation.

📋 Overview

This project implements 4 main tests:

UI Tests

  • Login Page: Authentication tests with success and failure scenarios
  • Checkboxes: Checkbox element interaction tests

API Tests

  • GET Request: GET request validation with positive and negative scenarios
  • POST Request: Post creation with payload and response validation

🚀 Prerequisites

  • Node.js (LTS version recommended)
  • npm or yarn

📦 Installation

# Install dependencies
npm install

# Install Playwright browsers
npx playwright install --with-deps

🧪 Running Tests

Main Commands

# Run all tests
npm test

# Run UI tests only
npm run test:ui

# Run API tests only
npm run test:api

# Run with graphical interface
npm run test:ui-mode

# View HTML report
npm run test:report

📁 Project Structure

tests/
├── ui/
│   ├── data/           # Test data for UI
│   ├── pages/          # Page Object Model
│   └── specs/          # UI test specifications
└── api/
    ├── data/           # Test data for API
    ├── specs/          # API test specifications
    └── types/          # TypeScript types for API

📊 Reports

After test execution, an HTML report is automatically generated. To view:

npm run test:report

🚀 CI/CD

The project includes GitHub Actions workflow (.github/workflows/playwright.yml) that:

  • Runs UI and API tests in parallel
  • Generates separate reports for each test type
  • Configures optimized timeout for each job

📝 Technical Decisions

  • Page Object Model: Implemented for better organization and code reusability
  • UI/API Separation: Clear structure to facilitate maintenance
  • TypeScript: Static typing for greater reliability
  • GitHub Actions: CI/CD configured with parallel jobs for optimization

🎯 Test Coverage

  • ✅ Login with valid credentials
  • ✅ Login with invalid credentials
  • ✅ Functional logout
  • ✅ Checkbox interaction
  • ✅ Checkbox state validation
  • ✅ GET requests with structure validation
  • ✅ POST requests with payload validation
  • ✅ Error scenario handling

Developed by: Pedro Gondim
Company: Tattle
Technologies: Playwright, TypeScript, GitHub Actions

About

Tattle's take-home test

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published