Test automation framework pentru https://dev.chipy.com/, construit cu Python, Playwright si pytest.
Framework-ul valideaza homepage-ul pe configuratii reale de mobile si desktop, ruleaza in paralel cu pytest-xdist, genereaza rapoarte HTML/JUnit si include acum un layer de visual regression testing cu baseline-uri locale si diff-uri integrate in pytest-html.
- Page Object Model pentru structura testelor
- rulare cross-device pe 8 configuratii reale
- filtre CLI pentru device si browser
- rulare paralela cu
pytest-xdist - rapoarte
report.htmlsijunit.xml - helperi pentru screenshot
- visual regression testing cu baseline-uri locale
- mascare pentru zone dinamice din screenshot-urile vizuale
| Device | Browser | Viewport |
|---|---|---|
| iPhone_15_Pro_Max | WebKit | 430x932 |
| Samsung_Galaxy_S24_Ultra | Chromium | 412x915 |
| Google_Pixel_8_Pro | Chromium | 412x915 |
| iPhone_14 | WebKit | 390x844 |
| Samsung_Galaxy_A54 | Chromium | 393x873 |
| Desktop_Chrome | Chromium | 1920x1080 |
| Desktop_Firefox | Firefox | 1920x1080 |
| Desktop_Safari | WebKit | 1920x1080 |
chipy-framework/
├── config/
│ └── config.py
├── pages/
│ ├── base_page.py
│ └── homepage.py
├── tests/
│ └── test_homepage.py
├── utils/
│ ├── screenshot.py
│ └── visual_regression.py
├── visual_baselines/
├── reports/
├── conftest.py
├── pytest.ini
├── requirements.txt
├── GIT_WORKFLOW.md
├── TEST_COMMANDS.md
└── README.md
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
playwright installRuleaza toata suita:
pytestRuleaza doar smoke:
pytest -m smokeRuleaza doar regression:
pytest -m regressionRuleaza doar visual:
pytest -m visualRegenereaza baseline-urile vizuale:
pytest -m visual --update-visual-baselinesRuleaza doar mobile:
pytest --target-device mobileRuleaza un singur device:
pytest --target-device Desktop_ChromePentru mai multe exemple, vezi:
Visual testing-ul este implementat local, fara serviciu extern.
Ce face:
- captureaza screenshot-uri pentru homepage
- salveaza baseline-uri per device in
visual_baselines/ - compara rularea curenta cu baseline-ul
- genereaza artefacte in
reports/visual/ - embed-uieste baseline, actual, diff si comparison direct in
reports/report.html
Baseline-urile sunt separate per device ca sa nu existe conflicte intre configuratiile mobile si desktop.
La rulare se genereaza:
reports/report.htmlreports/junit.xmlreports/visual/
Baseline-urile vizuale se gasesc in:
visual_baselines/
- Pentru debugging vizual sau Playwright Inspector, ruleaza cu
-n 1. - Pentru refresh de baseline-uri, foloseste
--update-visual-baselines. - Zonele dinamice de pe homepage pot fi mascate din
pages/homepage.py.