Sobes.tech
Middle

Brauzərlərarası testdə təcrübəniz haqqında danışın.

sobes.tech Süni İntellekt

AI-dan cavab

Kross-brauzer testi veb tətbiqlər üçün vacib mərhələdir və müxtəlif brauzerlərdə və onların versiyalarında düzgün göstərilməsini və funksionallığını təmin edir.

Mənim təcrübəm aşağıdakılardan ibarətdir:

  1. Əl ilə test:

    • Hər hansı vacib funksionallıq və ya UI-də dəyişiklikdən sonra, əsas brauzerlərdə (Chrome, Firefox, Edge, Safari) müxtəlif əməliyyat sistemlərində (Windows, macOS, Linux) və ekran həllərində əl ilə əsas ssenariləri yoxlamışam.
    • CSS renderləmə xüsusiyyətlərinə, JavaScript işləməsinə və cavab dizaynına xüsusi diqqət yetirmişəm.
    • Müxtəlif brauzerlərdə problemlərin diaqnozu və debug üçün inkişafçı alətlərindən (Developer Tools) istifadə etmişəm.
  2. Həqiqi cihazlarda və virtual mühitlərdə test:

    • Köhnə brauzer versiyalarında və ya xüsusi əməliyyat sistemi konfiqurasiyalarında test üçün virtual maşınlardan (məsələn, Windows və macOS-un müxtəlif versiyaları ilə) istifadə etmişəm.
    • Mobil cihazlar üçün emulyatorlar və simulyatorlar (məsələn, Xcode Simulator iOS-Safari üçün) istifadə etmişəm.
    • Brauzerlər və cihazların idarə olunması üçün xidmətlərdən (məsələn, BrowserStack, Sauce Labs) istifadə edərək, əhatəni genişləndirmişəm və çox sayda real cihaz və brauzer üzərində testlər aparmışam.
  3. Kross-brauzer testlərin avtomatlaşdırılması:

    • Hər gün və ya hər commitdən sonra müxtəlif brauzerlərdə işləyən avtomatlaşdırılmış testləri CI/CD pipeline-ə inteqrasiya etmişəm.
    • Frameworklərdən istifadə etmişəm:
      • Selenium WebDriver: müxtəlif dillərdə (Java, Python, JavaScript) testlər yazmaq və onları hər brauzer üçün uyğun sürücülər vasitəsilə işlətmək.
      • Playwright və Cypress: daha yeni layihələrdə, daha sürətli və etibarlı avtomatlaşdırma üçün, müxtəlif brauzerləri "korpusdan" dəstəkləyən.
    • Testlərin paralel və ya multiplexed şəkildə müxtəlif nodlarda işlədilməsi (məsələn, Selenium Grid və ya bulud xidmətləri ilə) test vaxtını azaltmaq.
    • Vizual regresiya yoxlamalarını (məsələn, Applitools, Percy) avtomatlaşdırmaq və səhifələrin ekran görüntülərini müxtəlif brauzerlərdə müqayisə etmək.
  4. Strateji və alətlərin müəyyənləşdirilməsi:

    • Hədəf auditoriyanın ən çox istifadə etdiyi brauzerlər və cihazları müəyyən etmək üçün web analitikası (Google Analytics) analiz etmişəm.
    • Analitikaya əsaslanaraq, layihənin tələbləri və riskləri əsasında brauzer, OS və cihazların kombinasiya matritsasını hazırlamışam.
    • Yeni brauzer versiyalarını və onların xüsusiyyətlərini daim öyrənmişəm və test strategiyasını uyğunlaşdırmışam.

Selenium ilə Chrome və Firefox üçün testin işlədilməsi nümunəsi:

// TestNG və ya JUnit konfiqurasiya olunmuş sayılır
// və uyğun sürücülər (chromedriver, geckodriver) PATH-dədir

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

public class CrossBrowserTest {

    WebDriver driver; // Sürücü dəyişəni

    @BeforeClass // Bu metod bütün testlərdən əvvəl işləyir
    public void setup() {
        // Sürücü yollarını konfiqurasiya et, əgər PATH-də deyilsə
        // System.setProperty("webdriver.chrome.driver", "yol/chromedriver");
        // System.setProperty("webdriver.gecko.driver", "yol/geckodriver");
    }

    @Parameters("browser") // XML konfiqurasiya faylından parametr
    @Test // Test ssenarisi
    public void testHomepageTitle(String browserName) { // XML-dən daxil olan parametr
        if (browserName.equalsIgnoreCase("chrome")) {
            driver = new ChromeDriver(); // Chrome sürücüsünü işə sal
        } else if (browserName.equalsIgnoreCase("firefox")) {
            driver = new FirefoxDriver(); // Firefox sürücüsünü işə sal
        } else {
            throw new IllegalArgumentException("Dəstəklənməyən brauzer " + browserName);
        }

        driver.manage().window().maximize(); // Brauzer pəncərəsini böyüt
        driver.get("https://www.example.com"); // URL aç

        String pageTitle = driver.getTitle(); // Səhifə başlığı
        System.out.println("" + browserName + " brauzerində səhifə başlığı: " + pageTitle);
        // Assert.assertEquals(pageTitle, "Example Domain");

        // Daxili yoxlamalar və ya digər əməliyyatlar...
    }

    @AfterMethod // Hər test metodundan sonra işləyir
    public void tearDown() {
        if (driver != null) {
            driver.quit(); // Brauzeri bağla və sessiyanı bitir
        }
    }
}
<!-- Chrome və Firefox üçün testng.xml nümunəsi -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Cross Browser Suite">

    <test name="Chrome Test">
        <parameter name="browser" value="chrome"/>
        <classes>
            <class name="CrossBrowserTest"/>
        </classes>
    </test>

    <test name="Firefox Test">
        <parameter name="browser" value="firefox"/>
        <classes>
            <class name="CrossBrowserTest"/>
        </classes>
    </test>

</suite>

Mənim yanaşmam, maksimal əhatə üçün, əl ilə yoxlamaları və avtomatlaşdırmanı birləşdirərək, resursların optimal istifadəsini təmin etməkdir.