Tento projekt obsahuje automatizované testy pre webovú aplikáciu https://demo.biometric.sk pomocou knižnice selenium a pytest.
Predpoklad:
Používateľ je na stránke: https://demo.biometric.sk/
Kroky:
- Zadať prihlasovacie meno do poľa Meno / ID
- Zadať heslo do poľa Heslo
- Kliknúť na tlačidlo Prihlásiť
Očakávaný výsledok:
Používateľ bude presmerovaný na Dashboard:
https://demo.biometric.sk/Pages/Dashboard
Cieľ:
Overiť, že systém správne reaguje na neplatné prihlasovacie údaje.
Kroky:
- Zadať neplatné používateľské meno alebo heslo
- Kliknúť na tlačidlo Prihlásiť
Očakávaný výsledok:
- Používateľ zostane na prihlasovacej stránke
- Zobrazí sa chybové hlásenie s informáciou o nesprávnych údajoch
Cieľ:
Overiť, či sa zakaždým zníži počet pokusov.
Kroky:
- Zadať neplatné heslo
- Kliknúť na tlačidlo Prihlásiť
- Opakovať so rovnakým používateľským menom
Očakávaný výsledok:
- Používateľ zostane na prihlasovacej stránke
- Zobrazí sa chybové hlásenie s informáciou o nesprávnych údajoch
- Počet zostávajúcich pokusov sa zníži
Cieľ:
Overiť, že prepínanie jazykových verzií (sk, en, cz) funguje správne.
Kroky:
- Prepnúť jazyk kliknutím na príslušný jazykový odkaz
- Overiť, že:
- Placeholdery a texty na stránke sa zmenia podľa zvoleného jazyka
- Obnoviť stránku
- Overiť, že jazyková mutácia zostala zachovaná
- Nainštalujte virtuálne prostredie
python3 -m venv venv- Aktivuj virtuálne prostredie:
source venv/bin/activate- Nainštaluj závislosti:
pip install -r requirements.txt- Spusť testy:
S GUI
pytest tests/ --verbose -sBez GUI:
HEADLESS=1 pytest tests/ --verbose -sSelenium je overený a široko používaný nástroj na testovanie webových aplikácií. Vybral som ho preto, že:
- Umožňuje realistickú interakciu s webovou stránkou, ako to robí skutočný používateľ (zadávanie údajov, klikanie, overovanie textu).
- Podporuje všetky hlavné prehliadače (Chrome, Firefox, Edge), čo je dôležité pre testovanie kompatibility.
- Má rozsiahlu dokumentáciu a komunitu.
Pytest som zvolil ako testovací rámec, pretože:
- Je jednoduchý na použitie – testy sú prehľadné, čitateľné a rýchlo sa píšu.
- Podporuje fixtures, ktoré zjednodušujú opakované nastavenia (napr. inicializácia prehliadača).
- Má silnú integráciu s CI/CD nástrojmi (GitHub Actions, GitLab CI atď.).
- Výsledky testov sú prehľadné a dobre logované.
Tieto testy sú integrované v CI pipelinu (GitHub Actions). Spúšťajú sa automaticky pri každej zmene v hlavnej vetve (main).
To zabezpečuje, že každá zmena v kóde je automaticky overená a neporušuje existujúcu funkcionalitu.
Ak si želáte uložiť výsledky testov do formátu HTML a JSON lokálne, použite:
HEADLESS=1 pytest tests/ --verbose -s --json-report --html=report.htmlVýsledky sa uložia do súborov:
report.html– prehľadný vizuálny report otvoriteľný v prehliadači. open filereport.json– strojovo čitateľný výstup vhodný pre integráciu s inými nástrojmi. open file
Je možné nastaviť notifikácie o výsledkoch testov priamo do aplikácie Slack pomocou GitHub Actions.
Napríklad, ak testy zlyhajú alebo prebehnú úspešne, do vybraného Slack kanála sa automaticky odošle správa.
Konfigurácia pre tests.yml:
- name: Notifikácia do Slacku pri neúspešných testoch
if: failure()
uses: slackapi/slack-github-action@v1.24.0
with:
payload: |
{
"text": ":x: Testy zlyhali v `${{ github.workflow }}` na branche `${{ github.ref_name }}`\n<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|Zobraziť výsledky>"
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
- name: Notifikácia do Slacku pri úspešnom prechode testov
if: success()
uses: slackapi/slack-github-action@v1.24.0
with:
payload: |
{
"text": ":white_check_mark: Všetky testy prebehli úspešne v `${{ github.workflow }}` na branche `${{ github.ref_name }}`"
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}Okrem Slacku je možné zasielať testovacie reporty aj priamo na e-mail vo forme príloh (napr. report.html a report.json).
- Pridajte do
tests.ymlnasledovný krok po spustení testov:
- name: Odoslanie reportu e-mailom
uses: dawidd6/action-send-mail@v3
if: always()
with:
server_address: smtp.gmail.com
server_port: 465
username: ${{ secrets.EMAIL_USERNAME }}
password: ${{ secrets.EMAIL_PASSWORD }}
subject: Výsledky testov z GitHub Actions
to: ${{ secrets.EMAIL_TO }}
from: Automatizovaný Testovací Systém
secure: true
body: |
Zdravím tím,
V prílohe nájdete výsledky posledného spustenia testov z CI pipeline.
Workflow: ${{ github.workflow }}
Commit: ${{ github.sha }}
Dátum: ${{ github.event.head_commit.timestamp }}
S pozdravom,
Testovací bot
attachments: report.html,report.json- V repozitári uložte nasledovné tajomstvá (
Settings → Secrets → Actions):EMAIL_USERNAME: e-mailová adresa odosielateľa (napr.ci-bot@test.sk)EMAIL_PASSWORD: heslo alebo app passwordEMAIL_TO: cieľová e-mailová adresa (napr.test@test.sk)
autotesting/
│
├── tests/ # Obsahuje testovacie súbory
├── venv/ # Virtuálne prostredie
├── requirements.txt # Zoznam závislostí
└── README.md # Tento súbor
