Learning Hub

Free tutorials and courses on QA Automation, Testing Frameworks & Software Engineering

Playwright Tutorial

Every tutorial includes code in: JavaScript Java Python
Beginner
1

Introduction to Playwright

What is Playwright, why choose it over other tools, and how it compares to Selenium, Cypress, and WebDriverIO.

OverviewComparison
2

Installation & Setup

Set up Playwright in JavaScript, Java, and Python projects with proper project structure and configuration.

SetupConfiguration
3

Writing Your First Test

Write, run, and understand your first Playwright test — navigating pages, clicking elements, and verifying results.

First TestHands-on
4

Locators & Selectors

Master Playwright's built-in locators — getByRole, getByText, getByTestId, CSS, XPath, and chaining strategies.

LocatorsSelectors
5

Actions & Interactions

Click, type, hover, drag-and-drop, select from dropdowns, check/uncheck, and handle keyboard/mouse events.

ActionsEvents
6

Assertions

Use Playwright's auto-retrying assertions — toBeVisible, toHaveText, toHaveURL, toHaveCount, and custom matchers.

AssertionsValidation
Intermediate
7

Page Object Model (POM)

Structure your tests using the Page Object pattern for maintainability, reusability, and cleaner code.

Design PatternPOM
8

Handling Waits & Timeouts

Understand auto-waiting, explicit waits, custom timeouts, waitForSelector, waitForResponse, and retry logic.

WaitsTiming
9

Working with Frames & Iframes

Navigate and interact with content inside frames, nested iframes, and cross-origin frame scenarios.

FramesIframes
10

Alerts, Dialogs & Popups

Handle JavaScript alerts, confirmation dialogs, prompts, new tabs/windows, and permission popups.

DialogsPopups
11

File Upload & Download

Upload files via file inputs, drag-and-drop uploads, download files, and verify downloaded content.

FilesUpload/Download
12

API Testing with Playwright

Make API requests, validate responses, chain API calls with UI tests, and use API for test setup/teardown.

APIREST
13

Test Configuration & Fixtures

Configure playwright.config, use built-in fixtures, create custom fixtures, and manage test environments.

ConfigFixtures
Advanced
14

Visual Testing & Screenshots

Capture screenshots, compare visual snapshots, full-page captures, element-level screenshots, and PDF generation.

VisualScreenshots
15

Parallel Execution & Sharding

Run tests in parallel, configure workers, shard test suites across machines, and optimize execution time.

ParallelPerformance
16

CI/CD Integration

Integrate Playwright with GitHub Actions, Jenkins, GitLab CI, Azure Pipelines, and Docker containers.

CI/CDDevOps
17

Custom Reporters

Use built-in reporters (HTML, JSON, JUnit), build custom reporters, and integrate with test management tools.

ReportersReporting
18

Network Interception & Mocking

Intercept HTTP requests, mock API responses, modify requests on the fly, and test error scenarios.

NetworkMocking
19

Browser Contexts & Authentication

Manage browser contexts, reuse authentication state, test multi-user scenarios, and handle storage state.

AuthContexts
20

Debugging & Tracing

Use Playwright Inspector, Trace Viewer, verbose logging, VS Code integration, and debug flaky tests.

DebugTracing

API Testing Tutorial

Every tutorial includes code in: JS (Fetch) Java (RestAssured) Python (Requests)
Beginner
1

Introduction to API Testing

What API testing is, why it matters, REST vs SOAP, HTTP methods, status codes, and the testing pyramid.

RESTHTTP
2

Setup & Project Structure

Install dependencies, configure your project structure, and set up a clean API testing workspace.

SetupConfig
3

Your First GET Request

Make your first API call, parse JSON responses, inspect headers, and validate status codes.

GETJSON
4

POST, PUT, PATCH & DELETE

Create, update, and delete resources using all CRUD HTTP methods with proper request bodies.

CRUDMethods
5

Query Parameters & Path Params

Use query strings for filtering, sorting, and pagination. Path parameters for resource identification.

ParamsFiltering
6

Headers & Content Types

Set and validate request/response headers, work with JSON, XML, and form-encoded content types.

HeadersContent-Type
7

Response Validation & Assertions

Master response validation — check JSON body fields, arrays, nested objects, and data types.

ValidationAssertions
Intermediate
8

Authentication & Authorization

Implement Bearer tokens, Basic auth, API keys, and OAuth2. Test protected endpoints and access control.

AuthJWT
9

JSON Schema Validation

Validate API response structure using JSON Schema — fields, types, required properties, and contracts.

SchemaContract
10

Request & Response Serialization

Serialize request bodies from objects and deserialize responses into typed models for clean tests.

POJOsModels
11

Error Handling & Negative Testing

Test 400, 401, 403, 404, 500 responses. Validate error messages, timeouts, and boundary conditions.

ErrorsNegative
12

Data-Driven Testing

Run tests with multiple data sets using parameterization, CSV files, and dynamic test generation.

Data-DrivenParametrize
13

API Chaining & Workflows

Chain multiple API calls — create, read, update, delete. Pass data between requests for E2E flows.

ChainingWorkflows
14

File Upload & Multipart Requests

Upload files via multipart/form-data, handle binary data, and work with mixed file + JSON payloads.

UploadMultipart
Advanced
15

Test Framework Integration

Build a reusable API testing framework with base classes, config management, helpers, and reporting.

FrameworkArchitecture
16

Environment & Configuration

Manage multiple environments (dev, staging, prod), handle secrets, use .env files, and switch configs.

EnvironmentsConfig
17

Retry Logic & Resilience Testing

Implement retry mechanisms, handle rate limiting, exponential backoff, and transient failures.

RetryResilience
18

Mocking & Service Virtualization

Mock API responses with WireMock, nock, and responses for isolated, fast, reliable testing.

MockingStubs
19

Performance & Load Testing

Measure response times, run concurrent load tests, validate SLAs, and analyze percentile metrics.

PerformanceLoad
20

CI/CD Integration & Reporting

Integrate API tests into GitHub Actions and Jenkins pipelines with Allure and HTML reports.

CI/CDReporting

Selenium Tutorial

Every tutorial includes code in: Java (Maven + Selenium 4) Python (pip + Selenium 4)
Beginner
1

Introduction to Selenium

What Selenium is, its architecture, Selenium 4 features, and how it compares to other tools.

OverviewSelenium 4
2

Setup — Maven, pip & Project Structure

Set up a Selenium 4 project with Maven (Java) and pip (Python). Configure dependencies and layout.

MavenSetup
3

Writing Your First Test

Launch a browser, navigate, interact with elements, and verify results in your first test.

First TestHands-on
4

Locators & Finding Elements

Master all locator strategies — ID, CSS, XPath, linkText, and Selenium 4 relative locators.

LocatorsCSS/XPath
5

Interactions — Click, Type & Select

Click buttons, type into inputs, select dropdowns, toggle checkboxes, and handle radio buttons.

ActionsForms
6

Waits — Implicit, Explicit & Fluent

Handle dynamic loading with implicit waits, WebDriverWait with ExpectedConditions, and fluent waits.

WaitsSync
7

Assertions & Verification

Verify page state — check text, attributes, visibility, URLs, element counts, and soft assertions.

AssertVerify
Intermediate
8

Page Object Model (POM)

Structure tests using the POM design pattern — encapsulate pages, PageFactory, and fluent APIs.

POMPattern
9

Alerts, Frames & Multiple Windows

Handle JavaScript alerts, switch between iframes, manage multiple windows and tabs.

AlertsFrames
10

Actions API — Advanced Interactions

Drag-and-drop, hover, right-click, double-click, keyboard combos, and Selenium 4 scrollToElement.

ActionsGestures
11

File Upload & Download

Upload files via sendKeys, configure download directories, and verify downloaded content.

UploadDownload
12

JavaScript Executor

Execute JavaScript in the browser — scroll, manipulate DOM, handle hidden elements, and extract data.

JS ExecutorDOM
13

Screenshots & Visual Testing

Capture full-page and element screenshots, auto-screenshot on failure, and visual regression.

ScreenshotsVisual
14

Chrome DevTools Protocol (CDP)

Selenium 4 CDP integration — network interception, geolocation, device emulation, console logs.

CDPSelenium 4
Advanced
15

Base Test Class & Framework Design

Build a production-ready framework with driver factory, base classes, and config management.

FrameworkArchitecture
16

Data-Driven Testing

Run tests with multiple data sets using TestNG DataProviders, pytest parametrize, and CSV/Excel.

Data-DrivenParametrize
17

Cross-Browser Testing

Run across Chrome, Firefox, Edge. Use Selenium Grid 4 with Docker for distributed execution.

Cross-BrowserGrid
18

Parallel Execution & Reporting

Run tests in parallel with TestNG/pytest-xdist. Generate Allure and HTML reports.

ParallelReports
19

CI/CD Integration

Integrate into GitHub Actions, Jenkins, and GitLab CI. Run headless tests in Docker containers.

CI/CDDocker
20

Best Practices & Design Patterns

Retry logic, test independence, flaky test handling, and advanced design patterns.

Best PracticesPatterns

Cucumber BDD Tutorial

Every tutorial includes code in: Java (Cucumber-JVM + Maven) Python (Behave)
Beginner
1

Introduction to BDD & Cucumber

Understand BDD, the Gherkin language, how Cucumber bridges business and engineering, and why BDD matters.

BDDGherkin
2

Setup & Project Structure

Configure Cucumber with Maven (Java) and pip/Behave (Python). Install dependencies and organize files.

MavenBehave
3

Gherkin Syntax Deep Dive

Master Gherkin keywords — Feature, Scenario, Given/When/Then, And/But, Background, and best practices.

GherkinSyntax
4

Writing Step Definitions

Map Gherkin steps to code — Cucumber expressions, regex, parameter capture, and step matching.

StepsGlue Code
5

Scenario Outline & Examples

Run the same scenario with multiple data sets using Scenario Outline and Examples tables.

OutlineData-Driven
6

Data Tables

Pass structured data in Gherkin steps — lists, maps, and multi-column tables for complex inputs.

TablesData
7

Test Runner & Execution

Configure the Cucumber runner, set CucumberOptions, run from CLI/IDE, and control execution.

RunnerCLI
Intermediate
8

Hooks — Before, After & Around

Set up and tear down with hooks — Before/After scenario, BeforeAll/AfterAll, and tagged hooks.

HooksLifecycle
9

Tags & Filtering

Organize and selectively run scenarios — @smoke, @regression, @wip, tag expressions, and logic.

TagsFiltering
10

Page Object Model with Cucumber

Integrate POM with step definitions — thin steps, page objects, and dependency injection.

POMClean Code
11

Sharing State & Dependency Injection

Share WebDriver across step classes with PicoContainer (Java) and Behave context (Python).

DIContext
12

Cucumber + Selenium Integration

Build a complete BDD suite with Selenium — end-to-end browser automation using Gherkin scenarios.

SeleniumE2E
13

Custom Parameter Types

Create custom types to convert Gherkin text into dates, enums, currencies, and domain objects.

TypesTransforms
14

Doc Strings & Multi-line Data

Use doc strings for JSON payloads, email bodies, long text, and multi-line content in steps.

DocStringsMulti-line
Advanced
15

Parallel Execution

Run scenarios in parallel — thread-safe drivers, TestNG DataProvider, and Behave parallel plugins.

ParallelThreadSafe
16

Reporting — Allure, HTML & Extent

Generate rich reports with Allure, Cucumber HTML, and Extent. Attach screenshots and logs.

AllureReports
17

API Testing with Cucumber

Write BDD scenarios for REST APIs — Gherkin with RestAssured (Java) and Requests (Python).

API BDDREST
18

Reusable Step Libraries

Build a library of generic, composable step definitions — navigation, forms, verification, and waits.

ReusableLibrary
19

CI/CD Integration

Run Cucumber in GitHub Actions and Jenkins pipelines. Publish reports and handle headless browsers.

CI/CDPipeline
20

Best Practices & Anti-Patterns

Write maintainable BDD — avoid anti-patterns, follow Gherkin guidelines, and scale your suite.

Best PracticesPatterns