Mitmefaasiline õppeprojekt, mis ühendab avalikud API-d, GA4 sündmused, A/B eksperimendi, CI torustiku ning jõudlustestid ühtseks praktikakeskkonnaks. Tudengid loovad realistliku mini-toote, millel on FastAPI backend, HTML/JS frontend ja täielik testimispinu (pytest, Jest, integratsiooni- ja koormustestid).
- Kokku 9 ülesannet × ~15 min aktiivset teostamist + kordused, arutelud ja raportid (~8 h).
- Ülejäänud aeg planeerimiseks, tulemuste kogumiseks ja esitlusteks (~2 h).
- Testiplaan – Struktureeri nõuded, riskid, tööriistad ja aktsepteerimiskriteeriumid kasutades
docs/testplan-template.mdmalli. - Backend + avalikud API-d – Käivita FastAPI
backend/kaustas, koosta/api/koond, mis pärib JSONPlaceholderi ja Rick & Morty andmed ning normaliseerib need testitavasse skeemi. - Frontend + API sidumine – Täienda
frontend/index.html, et kuvada backendist saadud andmeid ja säilitada kasutaja variandi eelistus. - GA4 integreerimine – Lisa
gtag.jsja kohandatud sündmusedvariant_vaade/variant_vahetus, tõenda tulemuseddocs/results/analytics/. - A/B variandid – Realiseeri kaks layout'i failis
frontend/ab.js, loo toggleapp.jsabil ja salvesta oleklocalStorage-is, et testid saaksid seda kontrollida. - Pytest ühikutestid – Kirjuta vähemalt viis testi
tests-python/kaustas, mis kontrollivad JSON skeemi, tõrkeid ja ajatempli formaati. - Jest testid – Rakenda vähemalt neli testi
tests-js/kaustas, mis valideerivad A/B loogikat ja sündmuse keha. - Integratsioonitestid – Kasuta
tests-integration/test_koostoime.py, et jooksutada FastAPI klienti koosresponses-põhiste mockidega ning logida tulemused. - GitHub Actions CI – Täienda
.github/workflows/tests.yml, mis käivitab Python ja JS testid ning salvestab artefaktid. - Locust koormustestid – Käivita
tests-performance-locust/locustfile.py, simuleeri 20–50 kasutajat ja arhiveeri koormuslogiddocs/results/locust/. - Tulemuste dokumenteerimine – Kogu raportid
docs/results/struktuuri, lisa viited testiplaani ja lõpp-aruandesse.
Repo sisaldab ainult näidiskoodi ja skelette. Kõik ülaltoodud sammud täidetakse tudengite poolt ning iga ülesanne kontrollitakse eraldi.
- Backend: macOS/Linux –
cd backend && python -m venv .venv && source .venv/bin/activate && pip install -r requirements.txt && cd .. && uvicorn backend.main:rakendus --reload; Windows PowerShell –cd backend; python -m venv .venv; .\.venv\Scripts\Activate.ps1; pip install -r requirements.txt; cd ..; uvicorn backend.main:rakendus --reload. - Frontend: macOS/Linux –
cd frontend && python -m http.server 4173; Windows –cd frontend; python -m http.server 4173ning avahttp://localhost:4173. - Pytest: macOS/Linux –
source .venv/bin/activate && pytest tests-python tests-integration -v; Windows –.\.venv\Scripts\Activate.ps1; pytest tests-python tests-integration -v. - Jest:
cd tests-js && npm install && npm test(mõlemal platvormil sama). - Locust: macOS/Linux –
source .venv/bin/activate && locust -f tests-performance-locust/locustfile.py --headless -u 20 -r 2 --run-time 3m --host http://localhost:8000; Windows –.\.venv\Scripts\Activate.ps1; locust -f tests-performance-locust/locustfile.py --headless -u 20 -r 2 --run-time 3m --host http://localhost:8000.
- Täidetud testiplaan
docs/testplan.mdkoos riskimaatriksi, ajajoone ja tööriistade tabeliga. - Töökorras backend ja frontend, mille käivitamine on kirjeldatud
backend/README.mdjafrontend/README.mdfailides. - Pytesti, Jesti, integratsiooni ja Locusti aruanded
docs/results/alamkataloogides ning GA4 tõendusanalytics/kaustas. - Läbitud GitHub Actions töövoog, mille logid on salvestatud
docs/results/ci/või linkidena README-s. - Dokumenteeritud A/B katse otsused ja mõõdikud koos soovitustega järgmisteks iteratsioonideks.