Masz już opanowanego webdrivera? Super.
Ale co dalej?
Nie chcesz przecież pisać tego samego setupu i cleanupu w każdej funkcji testowej, prawda?

I tu wchodzą fixtury w Pytest – całe na biało.


Czym jest fixtura?

Fixtura to taki pomocnik testowy.
Zrobi setup, poda ci drivera jak kawę do łóżka, a po teście wszystko posprząta.

import pytest
from selenium import webdriver

@pytest.fixture
def driver():
    options = webdriver.ChromeOptions()
    options.add_argument('--headless')
    driver = webdriver.Chrome(options=options)
    yield driver
    driver.quit()

Dlaczego warto?

  • 🧽 Koniec duplikacji – setup piszesz raz, używasz wielokrotnie.
  • ⚰️ Brak trupów w tle – nie zostawiasz sterty otwartych przeglądarek.
  • 📦 Scope jak chcesz – per test, per klasa, globalnie – masz wybór.

Przykład testu z życia

def test_page_load(driver):
    driver.get("https://example.com")
    assert "Example" in driver.title

Bez boilerplate’u. Bez syfu. Czysty test.


Można ambitniej?

  • scope='session' – jeden driver do wielu testów.
  • Parametryzacja fixture dla różnych środowisk/przeglądarek.
  • Łączenie fixture jak perki w skill-tree – serio, można.

TL;DR

Nie klep setupu jak w 2009.
Użyj fixtur.
Zachowaj porządek w kodzie.
Zachowaj zdrowie psychiczne.

W następnym wpisie: dobre praktyki testów – czyli jak nie pisać potworków.

Zostań z nami.