Çapraz Tarayıcı Testi kullanarak Selenium Web Sürücüsü

⚡ Akıllı Özet

Çapraz Tarayıcı Testi kullanarak Selenium WebDriver, bir web uygulamasının Chrome'da tutarlı bir şekilde davrandığını doğrular. FirefoxSafari ve Edge tarayıcılarını birleştirmenin nasıl yapılacağını gösteren bu eğitim videosu, bu tarayıcıların özelliklerini nasıl birleştirebileceğinizi anlatıyor. Selenium Web Sürücüsü TestNG Paralel oturumlar başlatmak, görüntülemeyi doğrulamak ve modern masaüstü ve mobil tarayıcılarda kapsamı genişletmek için.

  • 🌐 Neden önemlidir: Gerçek kullanıcılar aynı sayfayı farklı tarayıcılarda açtığı için, dönüşümleri ve erişilebilirliği korumak amacıyla düzenler, komut dosyaları ve stiller her yerde aynı şekilde çalışmalıdır.
  • 🧪 Selenium WebDriver kurulumu: ChromeDriver, GeckoDriver, EdgeDriver ve SafariDriver'ı yapılandırın, ardından tek bir parametreli yöntemle doğru örneği seçin.
  • ???? TestNG paralel çalıştırmalar: parallel="tests" özelliğine sahip bir testing.xml dosyası Chrome'u çalıştırır. FirefoxAynı zamanda Edge paketlerini de entegre ederek, büyük regresyon paketleri için geri bildirim döngülerini kısaltır.
  • Sık rastlanan kusurlar: Yazı tipi ölçeklendirme, CSS düzen kaydırmaları, JavaKomut dosyası polyfill eksiklikleri, HTML5 desteği, görüntü yönlendirmesi ve işletim sistemi-tarayıcı uyumsuzlukları hızla ortaya çıkıyor.
  • Bulut laboratuvarları ve yapay zeka: Sauce Labs, BrowserStack ve LambdaTest, binlerce işletim sistemi-tarayıcı çiftini kapsayan bir test yelpazesi sunarken, yapay zeka destekli görsel regresyon ve kendi kendini onaran konum belirleyiciler güvenilirliği artırıyor.

Çapraz Tarayıcı Testi Selenium Web Sürücüsü

Neden Çapraz Tarayıcı Testine ihtiyacımız var?

Web tabanlı uygulamalar, yerel masaüstü uygulamalarından çok farklıdır. Bir web uygulaması, son kullanıcı tarafından herhangi bir tarayıcıda açılabilir. Örneğin, bazı kişiler uygulamayı herhangi bir tarayıcıda açmayı tercih eder. https://twitter.com in Firefoxdiğerleri kullanırken krom, Safariya da Microsoft Edge.

Aşağıdaki şemada, eski tarayıcılarda Twitter giriş kutusunun yuvarlak köşelerinin doğru şekilde oluşturulmadığını, modern Chrome'un ise köşeleri tasarlandığı gibi oluşturduğunu gözlemleyebilirsiniz.

Çapraz Tarayıcı Testi

Dolayısıyla, web uygulamasının tüm popüler tarayıcılarda beklendiği gibi çalışmasını sağlamamız gerekiyor, böylece daha fazla insan ona erişebilsin ve kullanabilsin.

Bu amaç, Çapraz Tarayıcı ile gerçekleştirilebilir. Test yapmak Ürün, kapsam dahilindeki her tarayıcıda çalışır.

Tarayıcılar Arası Uyumluluk Sorunlarının Nedenleri

  1. Farklı tarayıcılarda yazı tipi boyutu uyuşmazlığı.
  2. JavaChrome (V8) genelinde komut dosyası motoru uygulamaları farklılık gösterir. Firefox (SpiderMonkey), Safari (JavaScriptCore) ve Edge.
  3. CSS ve HTML doğrulama farklılıkları, satıcı ön eklerinin işlenmesi de dahil olmak üzere.
  4. Eski tarayıcı sürümlerinde HTML5 ve ECMAScript özellik desteğinde tutarsızlık veya kısmi sorunlar yaşanabiliyor.
  5. Sayfa hizalaması, div boyutlandırması ve flexbox veya grid oluşturma varyasyonları.
  6. Görüntü yönü ve renk profili farklılıkları.
  7. Tarayıcının, temel işletim sistemiyle uyumsuzluğu, mobil WebView'deki tuhaflıklar da dahil olmak üzere. Android ve iOS.

Çapraz Tarayıcı Testi Nasıl Yapılır?

eğer kullanıyorsak Selenium WebDriver ile Chrome'a ​​karşı test senaryolarını otomatikleştirebiliriz. Firefox, Microsoft Edgeve Safari tarayıcıları.

Aynı makinede aynı anda farklı tarayıcılarla test senaryolarını çalıştırmak için, aşağıdaki entegrasyonu yapabiliriz: TestNG çerçeve Selenium WebDriver. Daha geniş işletim sistemi ve sürüm kapsamı için, aynı paket, uzak bir WebDriver uç noktası aracılığıyla Sauce Labs, BrowserStack veya LambdaTest gibi bulut ağlarına yönlendirilebilir.

testing.xml dosyanız şu şekilde görünecektir:

Çapraz Tarayıcı Testi

Bu test.xml, aşağıdakilerle eşleşecektir: Test Durumu Bu da şöyle görünüyor:

Çapraz Tarayıcı Testi

Çünkü testing.xml dosyasında birden fazla Test etiketi var ('ChromeTest', 'Firefox'Test', 'EdgeTest' gibi test senaryoları her tarayıcı için bir kez çalıştırılacaktır.

İlk test olan 'ChromeTest', 'browser' parametresinin değerini 'chrome' olarak geçirecek, böylece ChromeDriver çalıştırılacaktır. Bu test senaryosu Chrome tarayıcısında çalıştırılacaktır.

İkinci Test 'FirefoxTest', 'tarayıcı' parametresinin değerini ' olarak iletecektirFirefox', Bu yüzden FirefoxSürücü çalıştırılacak. Bu test senaryosu şurada çalıştırılacak: Firefox Tarayıcı. Edge veya Safari testi eklemek de aynı yöntemi izler.

Guru99CrossBrowserScript.java

Tamamla Code:

package parallelTest;

import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.safari.SafariDriver;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

public class CrossBrowserScript {

	WebDriver driver;

	/**
	 * This function will execute before each Test tag in testng.xml
	 * @param browser
	 * @throws Exception
	 */
	@BeforeTest
	@Parameters("browser")
	public void setup(String browser) throws Exception{
		//Check if parameter passed from TestNG is 'firefox'
		if(browser.equalsIgnoreCase("firefox")){
		//create firefox instance
			System.setProperty("webdriver.gecko.driver", ".\\geckodriver.exe");
			driver = new FirefoxDriver();
		}
		//Check if parameter passed as 'chrome'
		else if(browser.equalsIgnoreCase("chrome")){
			//set path to chromedriver.exe
			System.setProperty("webdriver.chrome.driver",".\\chromedriver.exe");
			//create chrome instance
			driver = new ChromeDriver();
		}
		//Check if parameter passed as 'Edge'
		else if(browser.equalsIgnoreCase("Edge")){
			//set path to msedgedriver.exe
			System.setProperty("webdriver.edge.driver",".\\msedgedriver.exe");
			//create Edge instance
			driver = new EdgeDriver();
		}
		//Check if parameter passed as 'Safari'
		else if(browser.equalsIgnoreCase("Safari")){
			//SafariDriver ships with macOS, no driver path needed
			driver = new SafariDriver();
		}
		else{
			//If no browser passed throw exception
			throw new Exception("Browser is not correct");
		}
		driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
	}

	@Test
	public void testParameterWithXML() throws InterruptedException{
		driver.get("https://demo.guru99.com/V4/");
		//Find user name
		WebElement userName = driver.findElement(By.name("uid"));
		//Fill user name
		userName.sendKeys("guru99");
		//Find password
		WebElement password = driver.findElement(By.name("password"));
		//Fill password
		password.sendKeys("guru99");
	}
}

test.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">

<suite name="TestSuite" thread-count="3" parallel="tests" >

<test name="ChromeTest">

<parameter name="browser" value="Chrome" />

<classes>

<class name="parallelTest.CrossBrowserScript">

</class>

</classes>

</test>

<test name="FirefoxTest">

<parameter name="browser" value="Firefox" />

<classes>

<class name="parallelTest.CrossBrowserScript">

</class>

</classes>

</test>

<test name="EdgeTest">

<parameter name="browser" value="Edge" />

<classes>

<class name="parallelTest.CrossBrowserScript">

</class>

</classes>

</test>

</suite>

NOT: Testi çalıştırmak için sağ tıklayın. test.xml"Çalıştır" seçeneğini belirleyin ve tıklayın. TestNG Süit.

 Çapraz Tarayıcı Testi

Bulut Tarayıcı Izgaraları ile Ölçeklendirme

Koşu Selenium WebDriver yerel olarak iki veya üç tarayıcıyı destekler, ancak gerçek kullanıcılar yüzlerce işletim sistemi ve tarayıcı kombinasyonundan sitelere erişir. Bulut laboratuvarları gibi... Sos Laboratuvarları, BrowserStack, ve Lambda Testi Uzak bir WebDriver uç noktası açığa çıkarın. Aynı noktaya işaret edin. Selenium Testler şebeke düzeyinde gerçekleştirilir, tarayıcı, sürüm, işletim sistemi ve çözünürlük için istenen yetenekler sağlanır ve paket, yerel sürücüleri yönetmeye gerek kalmadan yatay olarak ölçeklenebilir.

Modern test ağları ayrıca, uzun ömürlü tarayıcılar arası test paketlerinde bakım yükünü azaltan görsel regresyon farkı bulma, kendi kendini onaran öğe konumlandırıcılar ve tutarsızlık puanlaması gibi yapay zeka destekli özellikler de sunmaktadır.

Not: Verilen program şu ortamda oluşturulmuş ve test edilmiştir: Selenium 4, Chrome, Firefox, ve Microsoft EdgeProgramlar hata verirse, lütfen sürücü dosyalarını yüklü tarayıcı sürümünüzle eşleşecek şekilde güncelleyin veya aşağıdaki yöntemi kullanın. Selenium Sürücüleri otomatik olarak çözümleyen yönetici.

Atomic Cüzdanı indirin : Selenium Bu Eğitimdeki Demoya İlişkin Proje Dosyaları

SSS

Çapraz Tarayıcı Testi, bir web uygulamasının Chrome'da aynı şekilde çalıştığını doğrulayan işlevsel ve görsel bir test tekniğidir. Firefox, Safari ve Microsoft Edge Masaüstü ve mobil cihazlarda, farklı işletim sistemleri ve ekran boyutları dahil olmak üzere.

Selenium WebDriver, Chrome'u çalıştıran tek bir API sağlar. FirefoxAynı test kodu, resmi W3C WebDriver protokolü aracılığıyla Edge ve Safari tarayıcılarında çalışır. Bu da herhangi bir tarayıcıda aynı şekilde çalışmasını sağlar. Selenium WebDriver, tarayıcı otomasyonu ve tarayıcılar arası test için fiili standarttır.

TestNG `test.xml` dosyasında `parallel="tests"` ve `thread-count` parametrelerini kullanarak her bir Test etiketini kendi iş parçacığında çalıştırır. Parametreli `@BeforeTest` kurulumuyla birlikte, aynı şekilde Selenium WebDriver paketi Chrome üzerinde çalışır, Firefoxve Edge'i eş zamanlı olarak kullanarak genel yürütme süresini kısaltır.

Sauce Labs, BrowserStack ve LambdaTest, barındırılan hizmetler sunmaktadır. Selenium iOS Safari dahil olmak üzere binlerce işletim sistemi ve tarayıcı kombinasyonunu gösteren tablolar. Android Chrome. Bir RemoteWebDriver'ı grid uç noktasına yönlendirin ve aynı kodu büyük ölçekte çalıştırmak için istenen yetenekleri iletin.

Applitools, Percy ve BrowserStack ile LambdaTest'in görsel modüllerine entegre edilmiş yapay zeka destekli görsel regresyon motorları, ekran görüntülerini piksel piksel değil, anlamsal olarak karşılaştırır. Chrome, diğer tarayıcılar ve tarayıcılar arasındaki beklenen kenar yumuşatma veya yazı tipi oluşturma farklılıklarını göz ardı ederler. FirefoxSafari ve Edge tarayıcılarında gerçek düzen hatalarını yakalarken, aynı zamanda tarayıcılar arası test süreçlerindeki yanlış pozitifleri de önemli ölçüde azaltır.

Evet. Healenium gibi modern çerçeveler, TestimMabl ve yapay zeka özellikleri Selenium IDE, DOM'u analiz eder ve kararlı XPath veya CSS seçicileri önerir. Bir konum belirleyici, kullanıcı arayüzü değişikliği nedeniyle bozulduğunda, yapay zeka tarafından oluşturulan seçiciler, yakındaki öğeleri puanlayarak ve en yakın eşleşmeyi seçerek kendini onarır; bu da daha az manuel bakım ile tarayıcılar arası test paketlerinin sorunsuz çalışmasını sağlar.

Sık rastlanan hatalar arasında yazı tipi ve CSS oluşturma uyumsuzlukları yer alır. JavaKomut dosyası motoru tutarsızlıkları, bozuk HTML5 veya ES özellik desteği, resim yönlendirme sorunları, sayfa hizalama sorunları, eksik satıcı ön ekleri ve iOS Safari'de işletim sistemine özgü hatalar. Android Krom.

Bu yazıyı şu şekilde özetleyin: