Sobes.tech
Middle

Таърихи таҷрибаи худро дар санҷиши браузерҳои гуногун нақл кунед.

sobes.tech AI

Ҷавоб аз AI

Тестгирии дар ҳама браузерҳо як қадами ҳатмӣ барои барномаҳои веб мебошад, ки намоиши дуруст ва функсионалиро дар браузерҳо ва версияҳои онҳо таъмин мекунад.

Таҷрибаи ман дар бар мегирад:

  1. Тестгирии дастӣ:

    • Пас аз ҳар тағйироти муҳим дар функсионалӣ ё UI, ман сценарии калидиро дар браузерҳои асосӣ (Chrome, Firefox, Edge, Safari) дар системҳои оператсионӣ (Windows, macOS, Linux) ва ҳалли экран дастӣ санҷидаам.
    • Ба хусусиятҳои махсуси рендерингии CSS, кор бо JavaScript ва тарҳи ҷавобгӯ диққат додаам.
    • Аз Асбобҳои таҳиягар (Developer Tools) барои хатоҳо ва таҳлили мушкилот дар браузерҳои гуногун истифода кардам.
  2. Тестгирии дар дастгоҳҳои воқеӣ ва муҳитҳои виртуалӣ:

    • Аз машинҳои виртуалӣ (масалан, бо версияҳои гуногуни Windows ва macOS) барои санҷиш дар версияҳои кӯҳнаи браузерҳо ё конфигуратсияҳои махсуси ОС истифода кардам.
    • Аз эмуляторҳо ва симуляторҳо (масалан, Xcode Simulator барои iOS-Safari) барои дастгоҳҳои мобилӣ истифода кардам.
    • Бо хадамоти идоракунии дастгоҳҳо ва браузерҳо дар серверҳои дур (масалан, BrowserStack, Sauce Labs) барои васеъ кардани фарогирӣ ва санҷиш дар маҷмӯи калонтарини дастгоҳҳо ва браузерҳо кор кардам.
  3. Автоматизатсияи тестгирии дар ҳама браузерҳо:

    • Тестҳои автоматиро ба пайплайни CI/CD дохил кардам, то ҳар рӯз ё пас аз ҳар комит дар браузерҳои гуногун иҷро шаванд.
    • Фреймворкҳоро истифода кардам:
      • Selenium WebDriver: барои навиштани тестҳо дар забонҳои гуногун (Java, Python, JavaScript) ва иҷрои онҳо тавассути драйверҳои мувофиқ барои ҳар браузер.
      • Playwright ва Cypress: дар лоиҳаҳои навтар, барои автоматизатсияи зуд ва боэътимод бо дастгирии браузерҳои гуногун "аз қуттӣ".
    • Мултиплексатсия ё иҷрои параллелии тестҳо дар нуқтаҳои гуногун (масалан, бо истифода аз Selenium Grid ё хадамоти абрӣ) барои кам кардани вақти иҷро.
    • Назорат кардани регрессияҳои визуалӣ бо истифода аз асбобҳо (масалан, Applitools, Percy), бо муқоиса кардани скриншотҳои саҳифаҳо дар браузерҳои гуногун.
  4. Тартиб ва асбобҳои муайян кардан:

    • Анализ кардам анализи веб (Google Analytics) барои муайян кардани браузерҳо ва дастгоҳҳои бештар истифодашаванда аз ҷониби аудиторияи мақсаднок.
    • Матрисаи тестиро таҳия кардам бо рӯйхати маҷмӯаҳои зарурӣ аз браузерҳо, ОС ва дастгоҳҳо дар асоси аналитика, талаботҳои лоиҳа ва хатарҳо.
    • Бо доимӣ таҳқиқи версияҳои нав ва хусусиятҳои онҳо, стратегияи тестиро танзим кардам.

Маслиҳат барои иҷрои тестҳои Selenium дар Chrome ва Firefox:

// Гумон меравад, ки TestNG ё JUnit танзим шудааст
// ва драйверҳои мувофиқ (chromedriver, geckodriver) дар PATH ҳастанд

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; // Иломати тағирёбандаи драйвер

    @BeforeClass // Метод пеш аз ҳама тестҳо дар класс
    public void setup() {
        // Танзимоти роҳҳо ба драйверҳо, агар дар PATH набошанд
        // System.setProperty("webdriver.chrome.driver", "роҳ/ба/chromedriver");
        // System.setProperty("webdriver.gecko.driver", "роҳ/ба/geckodriver");
    }

    // Метод барои оғоз кардани драйвер дар асоси параметри "browser"
    @Parameters("browser") // Параметри аз файли XML
    @Test // Скрипти тест
    public void testHomepageTitle(String browserName) { // Воридшаванда аз testng.xml
        if (browserName.equalsIgnoreCase("chrome")) {
            driver = new ChromeDriver(); // оғоз кардани Chrome
        } else if (browserName.equalsIgnoreCase("firefox")) {
            driver = new FirefoxDriver(); // оғоз кардани Firefox
        } else {
            throw new IllegalArgumentException("Браузери дастгиришаванда нест: " + browserName);
        }

        driver.manage().window().maximize(); // Ҳадди аксар кардани тиреза
        driver.get("https://www.example.com"); // кушодани URL

        // Санҷиши унвони саҳифа
        String pageTitle = driver.getTitle();
        System.out.println("Унвони саҳифа дар " + browserName + ": " + pageTitle);
        // Assert.assertEquals(pageTitle, "Example Domain"); // Истифодаи assertions

        // Қадамҳои минбаъда ё санҷишҳо...
    }

    @AfterMethod // Метод пас аз ҳар тест
    public void tearDown() {
        if (driver != null) {
            driver.quit(); // Баста кардани браузер
        }
    }
}
<!-- Намунаи testng.xml барои иҷрои тестҳо дар Chrome ва Firefox -->
<?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"> <!-- Тест барои Chrome -->
        <parameter name="browser" value="chrome"/> <!-- Параметри интихоб барои браузер -->
        <classes>
            <class name="CrossBrowserTest"/> <!-- Класс бо тестҳо -->
        </classes>
    </test>

    <test name="Firefox Test"> <!-- Тест барои Firefox -->
        <parameter name="browser" value="firefox"/> <!-- Параметри интихоб -->
        <classes>
            <class name="CrossBrowserTest"/> <!-- Класс бо тестҳо -->
        </classes>
    </test>

</suite>

Равандам дар кросс-браузер тестгирӣ ҳамеша ба даст овардани максималӣ бо камтарин сармоягузорӣ равона аст, бо истифода аз санҷишҳои дастӣ барои ошкор кардани нюансҳо ва автоматизатсия барои регрессионӣ.