İlk Test
Rəsmi sənədləşmə tövsiyyə edir ki, biz hazır təqdim olunan yoxlama kodu nümunəsinə diqqət yetirək. Burada bizə playwright.dev saytının başlığında “Playwright” yazısının olmasını yoxlamağı görsədir. Beləliklə gəlin kodu nəzərdən keçirək:
import { test, expect } from '@playwright/test';test('has title', async ({ page }) => { await page.goto('https://playwright.dev/'); // Expect a title "to contain" a substring. await expect(page).toHaveTitle(/Playwright/);});test('get started link', async ({ page }) => { await page.goto('https://playwright.dev/'); // Click the get started link. await page.getByRole('link', { name: 'Get started' }).click(); // Expects page to have a heading with the name of Installation. await expect(page.getByRole('heading', { name: 'Installation' })).toBeVisible();});
Deməli test yazmaq üçün, ilk öncə import vasitasi ilə ‘@playwright/test’ kitabxanasından “test”, “expect” açar sözlərinə əsasən həmin metodları əldə edir. “test” metodu yoxlamaları yazmaq və icra etmək üçün, “expect” metodu isə yoxalama aparmaq üçündür.
Yuxarıdakı koda əsasən bizdə iki dənə keysi yoxlamaq üçün kod yazılıb. Keyslərimizi yazmaq üçün “test” metodundan istifadə edirik. Addımlarımızın gözləntilərini isə “expect” vasitəsi ilə koda əlavə edirik. Başlığın yoxlanması üçün test(‘has title’, …); yazılıb. Dərinə getdikcə biz async yazısını görürük. Bu yazı kodun asinxron yəni ard arda baş verməsini təmin edir. Sonra biz “page” yazısını görürük. Bu obyekt kimi əlavə edilir və istifadə olunur. Bizim brauzeri (vebdrayveri) təmsil edir. Aşağıda “page” obyektinin “goto()” metodu ilə verilən linkə keçirik. Lakin fikir versəniz həmin sətrin əvvəlində “await” yazısı var. Həmin yazı JavaScript-də async/await mexanizminin bir hissəsidir və vədlərin (Promises) nəticəsini gözləmək üçün istifadə olunur. Yəni, bir əməliyyatın tamamlanmasını gözləmədən kodun növbəti sətrinə keçməsinə icazə vermir. Bunu ona görə istifadə edirik ki, əməliyyat tam başa çatmadan növbəti sətir işlənər, bu da səhvlərə səbəb ola bilər. Məsələn, səhifə tam yüklənmədən başlıq yoxlanarsa, səhv nəticə alınar.
Səhifə yükləndikdən sonra biz səhifənin detallarını “page” obyektinə yerləşdirmiş oluruq. Ona görə də daha sonra idxal edilən “expect” metodu ilə “page” obyektin içində gözlədiyimiz başlığın olmasını yolxamaq üçün “.toHaveTitle()” metodunu yazırıq. /Playwright/ isə bir reqular ifadədir (regex) və başlıqda "Playwright" altyazısının (substring) olmasını axtarır.
İkinci test keys “get started link” adlanır və yoxlamaq üçün oxşar əməliyyatları edirik. Əlbəttə burada artıq “getByRole” və “toBeVisible” metodları istifadə olunur. Düşünürəm metodları ayrı məqalə ya videoda müzakirə edərik. Burada qısa izah verərək, “getByRole” locatordur və biz qeyd edirik ki, element “link” olacaq. Yazısı da “Get Started”. Üzərinə klikləməyini istədiyimizə görə “.click()” metodunu da sonda qeyd edirik. Növbəti sətirlərdə “getByRole” vasitəsi ilə heading elementini əldə edirik. Dediyim kimi, metodları ayrı-ayrı müzakirə edərik.
Burada istifadə etdiyimi “goto” və “getByRole” actions adlanır və “expect” isə “Assertions” adlanır.
test('example test', async ({ page }) => { // "page" belongs to an isolated BrowserContext, created for this specific test.});
“test()” metodu vasitəsi ilə “Test Isolations” yaratmaq olur. Yəni “page” obyekti ancaq həmin yoxlama üçün əlçatan olur. Digər “test()” metodunda olan “page” obyekti artıq yeni obyekt olur. Bu o deməkdir ki, hər test metodu üçün yeni brauzer açılır.
Yoxlama skriptini işlətdikdə
Nəticələrə Uİ üzərindən baxanda
Test Hooks vəya Yoxlama Qarmaqları
Hər bir testdən əvvəl/sonra həyata keçirilən testlər qrupunu və test.beforeEach və test.afterEach elan etmək üçün test.describe kimi müxtəlif test qarmaqlarından istifadə edə bilərsiniz. Digər qarmaqlara test.beforeAll və test.afterAll daxildir ki, bunlar hər bir işçi üçün bütün sınaqlardan əvvəl/sonra bir dəfə yerinə yetirilir.
import { test, expect } from '@playwright/test';test.describe('navigation', () => { test.beforeEach(async ({ page }) => { // Go to the starting url before each test. await page.goto('https://playwright.dev/'); }); test('main navigation', async ({ page }) => { // Assertions use the expect API. await expect(page).toHaveURL('https://playwright.dev/'); });});
Bu məqalə də bu qədər. Növbəti məqalələri qaçırmamaq üçün bizi izləməyi unutmayın.
Bizim Udemy kurslarımızı əldə edmək üçün endirim istəsəniz bizimlə əlaqə saxlayın. Ümumiyyətlə kursu bizdən link əldə edərək alsanız bizim üçün daha böyük dəstəyə imza atmış olacaqsınız. Əks halda ödənişin böyük hissəsi Udemy platformasına gedəcək.
Youtube kanalımızı da izləməyi unutmayın.