Co to jest testowanie w różnych przeglądarkach?
Testy między przeglądarkami to rodzaj testu funkcjonalnego sprawdzającego, czy aplikacja internetowa działa zgodnie z oczekiwaniami w różnych przeglądarkach.
Dlaczego potrzebujemy testów w różnych przeglądarkach?
Aplikacje internetowe są zupełnie inne niż aplikacje Windows. Aplikacja internetowa może zostać otwarta przez użytkownika końcowego w dowolnej przeglądarce. Na przykład niektórzy ludzie wolą otwierać https://twitter.com w przeglądarce Firefox, podczas gdy inni mogą używać przeglądarki Chrome lub IE .
Na poniższym diagramie widać, że w IE okienko logowania Twittera nie pokazuje krzywej we wszystkich rogach, ale możemy to zobaczyć w przeglądarce Chrome.
Musimy więc upewnić się, że aplikacja internetowa będzie działać zgodnie z oczekiwaniami we wszystkich popularnych przeglądarkach, aby więcej osób mogło uzyskać do niej dostęp i korzystać z niej.
Ten motyw można spełnić dzięki testowaniu produktu w różnych przeglądarkach.
Przyczyna problemów z różnymi przeglądarkami
- Niezgodność rozmiaru czcionki w różnych przeglądarkach.
- Implementacja JavaScript może być inna.
- CSS, różnica w walidacji HTML może tam być.
- Niektóre przeglądarki nadal nie obsługują HTML5.
- Wyrównanie strony i rozmiar div.
- Orientacja obrazu.
- Niezgodność przeglądarki z systemem operacyjnym. Itp.
Jak przeprowadzić testowanie w różnych przeglądarkach
Jeśli używamy Selenium WebDriver, możemy zautomatyzować przypadki testowe przy użyciu przeglądarek Internet Explorer, FireFox, Chrome, Safari.
Aby wykonywać przypadki testowe z różnymi przeglądarkami na tej samej maszynie w tym samym czasie, możemy zintegrować framework Testng z Selenium WebDriver.
Twój test.xml będzie wyglądał tak,
Ten test.xml zostanie zmapowany z przypadkiem testowym, który będzie wyglądał tak
Tutaj, ponieważ testing.xml ma dwa tagi Test („ChromeTest”, „FirefoxTest”), ten przypadek testowy zostanie wykonany dwa razy dla 2 różnych przeglądarek.
Pierwszy test „ChromeTest” przekaże wartość parametru „browser” jako „chrome”, więc ChromeDriver zostanie wykonany. Ten przypadek testowy będzie działać w przeglądarce Chrome.
Drugi test „FirefoxTest” przekaże wartość parametru „browser” jako „Firefox”, więc FirefoxDriver zostanie uruchomiony. Ten przypadek testowy zostanie uruchomiony w przeglądarce FireFox.
Kompletny kod:
Guru99CrossBrowserScript.java
pakiet 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.testng.annotations.BeforeTest;import org.testng.annotations.Parameters;import org.testng.annotations.Test;public class CrossBrowserScript {Sterownik WebDriver;/ *** Ta funkcja będzie wykonywana przed każdym tagiem Test w pliku testng.xml* Przeglądarka @param* Wyjątek @throws* /@BeforeTest@Parameters („przeglądarka”)public void setup (string browser) zgłasza wyjątek {// Sprawdź, czy parametr przekazany z TestNG to „firefox”if (browser.equalsIgnoreCase ("firefox")) {// utwórz instancję firefoxSystem.setProperty ("webdriver.gecko.driver", ". \\ geckodriver.exe");driver = nowy FirefoxDriver ();}// Sprawdź, czy parametr przekazany jako „chrome”else if (browser.equalsIgnoreCase ("chrome")) {// ustaw ścieżkę do chromedriver.exeSystem.setProperty ("webdriver.chrome.driver", ". \\ chromedriver.exe");// utwórz instancję chromesterownik = nowy ChromeDriver ();}// Sprawdź, czy parametr przekazany jako „Edge”else if (browser.equalsIgnoreCase ("Edge")) {// ustaw ścieżkę do Edge.exeSystem.setProperty ("webdriver.edge.driver", ". \\ MicrosoftWebDriver.exe");// utwórz instancję Edgedriver = nowy EdgeDriver ();}jeszcze{// Jeśli żadna przeglądarka nie przeszła wyjątkuzgłoś nowy wyjątek („Przeglądarka jest nieprawidłowa”);}driver.manage (). timeouts (). implicitlyWait (10, TimeUnit.SECONDS);}@Testpublic void testParameterWithXML () rzuca InterruptedException {driver.get („http://demo.guru99.com/V4/”);// Znajdź nazwę użytkownikaWebElement userName = driver.findElement (By.name ("uid"));// Wypełnij nazwę użytkownikanazwa_użytkownika.sendKeys ("guru99");//Znajdź hasłoWebElement hasło = driver.findElement (By.name ("hasło"));// Wpisz hasłopassword.sendKeys ("guru99");}}
testing.xml
xml version = "1.0" encoding = "UTF-8"?>
UWAGA: Aby uruchomić test, kliknij prawym przyciskiem myszy plik testing.xml, wybierz opcję Uruchom jako i kliknij przycisk TestNG
Podsumowanie
- Testowanie w różnych przeglądarkach to technika testowania aplikacji internetowych w różnych przeglądarkach internetowych.
- Selenium może obsługiwać różne typy przeglądarek do automatyzacji.
- Selenium można zintegrować z TestNG, aby przeprowadzać testy w wielu przeglądarkach.
- Z parametrów w testing.xml możemy przekazać nazwę przeglądarki, aw przypadku testowym możemy odpowiednio stworzyć referencję WebDriver.
Uwaga: podany program został zbudowany i przetestowany na selenie 3.0.1, Chrome 56.0.2924.87, Firefox 47.0.2 i Microsoft Edge 14.14393. Jeśli programy wyświetlają błąd, zaktualizuj sterownik
Pobierz pliki projektu Selenium do wersji demonstracyjnej w tym samouczku