Modul 0: Quraşdırma və ilk test
Python for SDETs-ə xoş gəldin. Bu ilk modul maşınını hazırlayır və real bir tətbiqə qarşı
keçən əsl bir testlə bitir. Sonunda Python, virtual mühit, pytest və requests quraşdırılmış,
TestMarket Lab lokalda işlək və bütün alət zəncirinin başdan-sona işlədiyini sübut edən
yaşıl bir testin olacaq.
🎬 Video tezliklə əlavə olunacaq
Modul 0: quraşdırmaya qısa baxış — slayd təlimatı Slaydlar — yeni pəncərədə açılırNə quraşdıracaqsan
Bölmə: “Nə quraşdıracaqsan”Dörd şey, sıra ilə:
- Python 3 — dil (yəqin ki Fundamentals-dan onsuz da var; yoxlayacağıq).
- Virtual mühit (
venv) — layihə üçün təcrid olunmuş paket dəsti. pytest— Python testi üçün de-fakto standart olan test icraçısı.requests— tətbiqin REST API-sini çağırmaq üçün işlədəcəyimiz kitabxana.
Python üçün Playwright sonra, Modul 6-da gəlir — onu hələ quraşdırmağa ehtiyac yoxdur.
Yadda saxla: bu kursun alət zənciri Python + venv + pytest + requests-dir.
Python-u quraşdır və yoxla
Bölmə: “Python-u quraşdır və yoxla”Sənə Python 3.9 və ya daha yeni lazımdır.
-
Onsuz da nəyin olduğunu yoxla. Terminal aç və işlət:
Terminal window python --versionPython 3.9.xvə ya daha yüksək görürsənsə, hazırsan — növbəti bölməyə keç. Bəzi sistemlərdə əmrpython3-dür:Terminal window python3 --version -
Yoxdursa quraşdır. Quraşdırıcını python.org/downloads-dan endir və işə sal.
-
pip-i yoxla (Python-un paket quraşdırıcısı — Python ilə birlikdə gəlir):Terminal window pip --versionpiptapılmırsa, əvəzinəpython -m pip --versionsına.
Yadda saxla: davam etməzdən əvvəl python --version (≥ 3.9) və pip --version-i təsdiqlə —
korlanmış Python quraşdırma ağrısının #1 səbəbidir.
Layihə və virtual mühit yarat
Bölmə: “Layihə və virtual mühit yarat”Virtual mühit bir layihəyə aid olan Python-un paket sahəsinin şəxsi nüsxəsidir. Ora quraşdırmaq bu kursun paketlərini maşınındakı hər şeydən ayrı saxlayır — versiya toqquşması yoxdur və bir qovluğu silərək bütün şeyi silə bilərsən.
-
Layihə qovluğunu yarat:
Terminal window mkdir python-sdetcd python-sdet -
Virtual mühiti qur (ikinci
venvqovluq adıdır —.venvgeniş yayılmış konvensiyadır):Terminal window python -m venv .venv -
Onu aktivləşdir. Bu, insanların unutduğu addımdır — quraşdırmaq və ya işlətməkdən əvvəl hər yeni terminalda venv-i aktivləşdirməlisən:
Terminal window # Windows (PowerShell).venv\Scripts\Activate.ps1# Windows (cmd).venv\Scripts\activate.bat# macOS / Linux (bash, zsh)source .venv/bin/activateAktiv olduqda, prompt-un əvvəlində
(.venv)göstərilir.
Mühitdən sonra çıxmaq üçün deactivate işlət.
Yadda saxla: venv bir layihənin paketlərini təcrid edir. Bir dəfə qur (python -m venv .venv), hər yeni terminalda aktivləşdir — (.venv) prefiksi onun açıq olduğunu deyir.
pytest və requests-i quraşdır
Bölmə: “pytest və requests-i quraşdır”venv aktiv olarkən iki kitabxananı quraşdır:
pip install pytest requestsQuraşdırdığını qeyd et ki, hər kəs (o cümlədən gələcək sən, ya da CI) onu təkrar yarada bilsin:
pip freeze > requirements.txtrequirements.txt indi dəqiq versiyaları siyahılayır. Sonra təzə maşın mühiti
pip install -r requirements.txt ilə yenidən qurur.
pytest-in path-da olduğunun tez yoxlanışı:
pytest --versionYadda saxla: aktiv venv-ə quraşdır, sonra versiyaları bərkitmək üçün
pip freeze > requirements.txt — həmin fayl CI-nin və komanda yoldaşlarının eyni quraşdırmanı
almasının yoludur.
Layihə quruluşu
Bölmə: “Layihə quruluşu”Təmiz bir test layihəsi kiçik başlayır. Bir tests/ qovluğu yarat — pytest testləri orada aşkarlayır:
python-sdet/├── .venv/ # the virtual environment (don't commit this)├── tests/│ └── test_smoke.py # your tests live here├── requirements.txt # pinned dependencies└── pytest.ini # pytest configuration (optional, added below)Layihə kökünü işarələmək və pytest-i tests/ qovluğuna yönəltmək üçün kiçik bir pytest.ini əlavə et
ki, çılpaq pytest (layihə kökündən işlədilib) yolu adlandırmadan onları aşkarlasın:
[pytest]# Where pytest looks for teststestpaths = testsYadda saxla: testləri tests/-də saxla, asılılıqları requirements.txt-də bərkit və .venv/-i
versiya nəzarətindən kənarda saxla.
Məşq tətbiqini al: TestMarket Lab
Bölmə: “Məşq tətbiqini al: TestMarket Lab”Bu kursdakı hər test TestMarket Lab-a qarşı işləyir — REST API və veb UI-si olan kiçik, real
mağaza. Bu, sənin python-sdet qovluğundan ayrı bir layihədir: tətbiq bir terminalda işləyir,
testlərin başqasında.
Onu işlətmək üçün Node.js quraşdırılmış olmalıdır (LTS versiya). Sonra,
python-sdet-dən kənar bir qovluqda:
git clone https://github.com/TesterBaku/testmarket-labcd testmarket-labnpm installnpm startOnu işlək saxla və http://localhost:3000-i aç — TestMarket mağazasını görməlisən. API-nin də cavab verdiyini təsdiqlə, brauzerdə və ya başqa terminalda:
# In a new terminalcurl http://localhost:3000/api/productsGeriyə məhsulların JSON massivini almalısan.
Yadda saxla: tətbiq öz terminalında http://localhost:3000-də işləyir; işləyərkən onu işlək
saxla. /api/reset verilənləri məlum başlanğıc vəziyyətinə qaytarır.
İlk testin
Bölmə: “İlk testin”Bütün stack-in işlədiyini sübut etmə vaxtıdır. python-sdet layihəndə, venv aktiv və TestMarket Lab
işlək olarkən, bunu tests/test_smoke.py-a qoy:
import requests
BASE_URL = "http://localhost:3000"
def test_products_endpoint_is_up(): response = requests.get(f"{BASE_URL}/api/products")
# The request succeeded assert response.status_code == 200
# The body is a JSON array with products in it products = response.json() assert isinstance(products, list) assert len(products) > 0Onu python-sdet qovluğundan işlət:
pytestBuna bənzər bir şey görməlisən:
========================= test session starts =========================collected 1 item
tests/test_smoke.py . [100%]
========================== 1 passed in 0.05s ==========================Fayl adından sonrakı o tək nöqtə sənin keçən testindir. 🎉
Əvəzinə Connection refused görürsənsə, tətbiq işləmir — TestMarket Lab-ı öz terminalında işə sal
və yenidən sına. pytest “no tests ran” bildirirsə, faylın test_smoke.py adlandığını (test_
prefiksi vacibdir) və funksiyanın test_ ilə başladığını yoxla. Bu adların niyə vacib olduğunu
Modul 1-də dəqiq açacağıq.
Yadda saxla: keçən bir API smoke testi (200 + boş olmayan list) bütün alət zəncirinin — Python,
venv, pytest, requests və işləyən tətbiqin — düzgün qoşulduğunu sübut edir.
Əsas nəticələr
Bölmə: “Əsas nəticələr”- Bu kurs brauzer icraçısını yox, əsl lokal quraşdırmanı işlədir — işin işlədiyi yol.
- Alət zənciri Python + venv + pytest + requests-dir (Playwright Modul 6-da gəlir).
- venv paketləri təcrid edir: bir dəfə qur, hər yeni terminalda aktivləşdir, ora quraşdır və
versiyaları bərkitmək üçün
pip freeze > requirements.txt. - TestMarket Lab öz terminalında
http://localhost:3000-də işləyir və hər testin hədəflədiyi şeydir. - pytest
test_*.pyadlı faylları vətest_*adlı funksiyaları aşkarlayır; keçən bir API smoke testi stack-i başdan-sona təsdiqləyir.
Yoxlama siyahısı — indi bunlar olmalıdır: Python ≥ 3.9 yoxlanıb; aktiv .venv olan bir
python-sdet layihəsi; pytest və requests quraşdırılıb və requirements.txt-də bərkidilib;
TestMarket Lab klonlanıb və http://localhost:3000-də işlək; və tests/test_smoke.py keçir.
Modul 1-də pytest-in özünə dərindən gedirik — testlərin necə
aşkarlandığı, assert-in sənə necə oxunaqlı uğursuzluqlar verdiyi və istədiyin testləri dəqiq necə
işlətmək.