Modul 10 · Python for SDETs

CI
GitHub Actions ilə

Dəst özünü işlədir — hər push və pull request-də

tests.yml tətbiqi başlat & gözlə hesabat artefaktı tələb olunan yoxlama
AI with Rufat
İşlətməyi xatırlamalı olduğun testlər gec-tez işlədilmir

CI dəsti sənin üçün işlədir — avtomatik

🔁

Hər dəyişiklik

Hər push və PR-da hər testi işlədir — "işlətməyi unutdum" yoxdur.

🛑

Sınmanı bloklayır

Uğursuzluq commit/PR-ı qırmızı işarələyir — və birləşmək üçün yaşıl tələb edə bilər.

📄

Bölüşülə bilən hesabat

HTML hesabatı icraya əlavə olunur, hər kəsin açması üçün.

🚪Fayda tələb olunan yoxlamadır: dəst CI-nin təmiz maşınında keçənə qədər PR birləşə bilmir — sadəcə "mənim noutbukumda işləyir" yox.
AI with Rufat
.github/workflows/-da bir YAML fayl
# .github/workflows/tests.yml
name: tests
on:
push: { branches: [main] }
pull_request:
jobs:
test:
runs-on: ubuntu-latest
steps: …
🧱Bir name, bir on: tətikləyici və steps-dən ibarət jobs.
🔩Hər addım ya uses: (hazır action) ya da run: (shell əmrləri)-dir. push-u main-ə scope-lamaq branch push-unun onun PR-ının hər ikisinin işləməsini dayandırır.
AI with Rufat
İşin forması

Checkout → qur → tətbiqi başlat → test → yüklə

checkout
Python + Node
pip install + playwright
tətbiqi başlat & gözlə
pytest
hesabatı yüklə
📌Hər quraşdırmadan sonra requirements.txt-i yenidən bərkit (pytest-html, pytest-playwright) — çatışmayan asılılıq CI-də --html addımını uğursuz edir.
AI with Rufat
İnsanları büdrədən iki təfərrüat
# background the app, then WAIT
npm start &
for i in $(seq 1 30); do
curl -sf localhost:3000/api/products \
&& exit 0
sleep 1
done; exit 1 # never started
npm start & dərhal qayıdır — real endpoint-i cavab verənə qədər yoxla, sabit təxmini sleep etmə.
🐧playwright install --with-deps chromium — headless runner-in Linux kitabxanalarına da ehtiyacı var.
💾if: always() ilə yüklə — testlər uğursuz olanda belə hesabatı saxla (məhz onu istədiyin an).
AI with Rufat
🤖

Testlər
həmişə işlədi

Hər push təmiz maşında yoxlanılıb, hesabat əlavə olunub, birləşmələr yaşıla bağlıdır

⚙️
Məşq
tests.yml əlavə et, push et və Actions tabında icranın yaşıl getdiyini izlə
🚪
Onu tələb et
Branch qorunması: test işini tələb et ki, heç bir qırmızı PR main-ə çatmasın
➡️
Modul 11
Capstone — hər şeyi birləşdirən tam API + UI dəsti
AI with Rufat
← / → · space