Avtomatlaşdırılmış Testlərin CI/CD Boru Kəmərinə İnteqrasiyası: GitHub Actions
Davamlı İnteqrasiya (CI) və Davamlı Çatdırılma (CD) keyfiyyət qapılarına söykənir. GitHub Actions workflows vasitəsilə testlərin avtomatlaşdırılmasını öyrənin.
1. Niyə CI/CD-də Shift-Left Testing Vacibdir?
Testlərin proqram təminatının hazırlanması prosesinin son mərhələsində icra olunması defektlərin aradan qaldırılması xərclərini eksponensial olaraq artırır. Avtomatlaşdırılmış smoke və regresiya testlərinin birbaşa Pull Request (PR) mərhələsinə inteqrasiyası komandalara kod yazıldıqdan bir neçə dəqiqə sonra xətaları tapmağa imkan verir.
2. GitHub Actions İş Axını (Workflow) Yaratmaq
Aşağıda hər bir pull request zamanı Playwright testlərini paralel şəkildə işə salan istehsalat səviyyəli YAML konfiqurasiyası nümayiş etdirilir:
name: E2E Test Suite
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
test:
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18
- name: Install dependencies
run: npm ci
- name: Install Playwright Browsers
run: npx playwright install --with-deps
- name: Run Playwright tests
run: npx playwright test
- uses: actions/upload-artifact@v4
if: always()
with:
name: playwright-report
path: playwright-report/
retention-days: 30
3. Paralel Test İcrası və Çoxlu Brauzer Matrisi
Test icra müddətini qısaltmaq üçün GitHub Actions matris xüsusiyyətindən istifadə edərək testləri Chromium, Firefox və WebKit brauzerlərində eyni anda işlədə bilərsiniz.
4. CI/CD Boru Kəmərində Test Nəticələrinin Analizi
- Artefaktların Saxlanılması: Uğursuz testlərin ekran görüntülərini (screenshots) və video yazılışlarını yükləyin.
- Slack / Teams Bildirişləri: Testlərin nəticəsi barədə komandaya dərhal bildiriş göndərin.
- Flaky Testlərin İdarə Olunması: Şəbəkə gecikmələri səbəbindən qeyri-sabit işləyən testlərə avtomatik təkrar cəhd (retry) addımı əlavə edin.
Məqalə QA Academy Komandası Tərəfindən Hazırlanıb
DevOps və QA avtomatlaşdırma təcrübələrimizi bələdçi şəklində təqdim edirik.