Testowanie w różnych przeglądarkach przy użyciu Selenium Sterownik sieciowy
Testowanie w różnych przeglądarkach przy użyciu Selenium
Testowanie w różnych przeglądarkach to rodzaj testu funkcjonalnego mającego na celu sprawdzenie, czy Twoja 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 Windows Aplikacje. Aplikację internetową użytkownik końcowy może otworzyć w dowolnej przeglądarce. Na przykład niektórzy ludzie wolą otwierać https://twitter.com in Firefox przeglądarka, podczas gdy inni mogą używać Przeglądarka Chrome or IE.
Na poniższym diagramie widać, że w IE, pole logowania na Twitterze nie jest zakrzywione na wszystkich rogach, ale możemy to zobaczyć w przeglądarce Chrome.
Musimy więc zadbać o to, aby aplikacja internetowa działała zgodnie z oczekiwaniami we wszystkich popularnych przeglądarkach, aby więcej osób mogło uzyskać do niej dostęp i z niej korzystać.
Motyw ten można spełnić za pomocą przeglądarki Cross Browser Testowanie produktu.
Przyczyna Problemy z różnymi przeglądarkami
- Niezgodność rozmiaru czcionki w różnych przeglądarkach.
- JavaImplementacja skryptu może być różna.
- Może występować różnica w walidacji CSS i HTML.
- Niektóre przeglądarki nadal nie obsługują HTML5.
- Wyrównanie strony i rozmiar elementu div.
- Orientacja obrazu.
- Niekompatybilność przeglądarki z systemem operacyjnym. Itp.
Jak przeprowadzić testowanie w różnych przeglądarkach
Jeśli używamy Selenium WebDriver pozwala na automatyzację przypadków testowych przy użyciu przeglądarek Internet Explorer i FireFox, Chrome, przeglądarki Safari.
Aby wykonywać przypadki testowe w różnych przeglądarkach na tej samej maszynie w tym samym czasie, możemy dokonać integracji TestNG ramy z Selenium Sterownik sieciowy.
Twój plik testowy.xml będzie wyglądał tak,
Ten plik testowy.xml będzie mapowany z Przypadek testowy który będzie tak wyglądał
Tutaj, ponieważ plik testowy.xml ma dwa znaczniki testowe („ChromeTest”,”FirefoxTest”), ten przypadek testowy zostanie wykonany dwukrotnie 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 testFirefoxTest” przekaże wartość parametru „przeglądarka” jako „Firefox' Więc FirefoxSterownik zostanie wykonany. Ten przypadek testowy zostanie uruchomiony w FireFox browser.
Guru99CrossBrowserScript.java
Kompletny kod:
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.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 Edge.exe System.setProperty("webdriver.edge.driver",".\\MicrosoftWebDriver.exe"); //create Edge instance driver = new EdgeDriver(); } 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"); } }
testowanie.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="TestSuite" thread-count="2" 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>
UWAGA: Aby uruchomić test, kliknij prawym przyciskiem myszy testowanie.xml, Wybierz opcję Uruchom jako i kliknij TestNG
Podsumowanie
- Testowanie między przeglądarkami to technika testowania aplikacji internetowych za pomocą różnych przeglądarek internetowych.
- Selenium może obsługiwać różne typy narzędzie do testowania w różnych przeglądarkach dla automatyzacji.
- Selenium można zintegrować z TestNG aby przeprowadzić testowanie wielu przeglądarek.
- Z parametrów w plikutesting.xml możemy przekazać nazwę przeglądarki, a w przypadku testowym możemy odpowiednio utworzyć referencję do WebDrivera.
Uwaga: Podany program został zbudowany i przetestowany na Selenium 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 Selenium Pliki projektu dla wersji demonstracyjnej w tym samouczku