Как запускать тесты Selenium в BrowserStack [Кросс-браузерное тестирование]
В этом посте мы видим, как запускать тесты Selenium в BrowserStack. Перед этим давайте узнаем, почему мы выполняем тесты Selenium WebDriver на BrowserStack. В этом посте мы узнаем следующее.
- 1. Что такое BrowserStack
- 2. Что такое кроссбраузерное тестирование
- 3. Запустите тесты Selenium в BrowserStack
- 4. Запуск тестов Selenium в нескольких браузерах параллельно на BrowserStack
- 5. Создание снимков экрана при выполнении сценариев Selenium в BrowserStack
Что такое BrowserStack
BrowserStack — один из премиальных спонсоров Selenium. BrowserStack поддерживает автоматизированные тесты Selenium. Он запускает наши тесты Selenium в облаке. Это очень просто и понятно. Здесь я не говорю об особенностях BrowserStack. Это выходит за рамки данной статьи. Используя BrowserStack, мы могли бы проводить кросс-браузерное тестирование с использованием Selenium. В этой статье я покажу вам, как проводить кросс-браузерное тестирование с помощью Selenium в BrowserStack.
Вы можете узнать больше о BrowserStack на Официальном сайте BrowserStack
Что такое кроссбраузерное тестирование
Кросс-браузерное тестирование — это тип нефункционального теста, который помогает нам убедиться, что наш веб-сайт или веб-приложение работают должным образом в различных веб-браузерах. Мы можем проводить кросс-браузерное тестирование в разных браузерах как вручную, так и автоматически. Чтобы выполнить кросс-браузерное тестирование вручную, мы (тестировщики программного обеспечения) создаем тесты для каждого браузера и выполняем их вручную в каждом браузере. Чтобы сделать это автоматически, мы могли бы создать тесты Selenium с несколькими условными операторами, которые выполняют тестовые случаи на основе указанного типа браузера. При тестировании веб-сайта нам необходимо убедиться, что он отображается одинаково во всех браузерах. Для этого нам нужно иметь все браузеры. К счастью, есть некоторые инструменты (например, CrossBrowserTesting, BrowserStack) для выполнения кросс-браузерного тестирования без индивидуального ручного тестирования.
Просмотрите видео ниже, чтобы посмотреть «Как выполнять сценарии Selenium параллельно с помощью BrowserStack»
Наберитесь терпения. Видео загрузится через некоторое время.
Запуск тестов Selenium в BrowserStack
Давайте начнем с примера теста, который открывает домашнюю страницу сайта SoftwareTestingMaterial, получает заголовок страницы и проверяет его с помощью утверждения.
Предварительные условия для выполнить кросс-браузерное тестирование с использованием Selenium:
- Учетная запись BrowserStack — ссылка для регистрации
- Имя пользователя и ключ доступа BrowserStack
- Selenium Jars
- TestNG Jars
Шаг 1:Через несколько минут после подписки на пробную версию вы получите электронное письмо от службы поддержки BrowserStack с вопросом, нужна ли вам помощь в настройке интеграции с BrowserStack.
После входа в систему запишите свое имя пользователя и ключ доступа. Нам нужно передать имя пользователя и ключ доступа вместе с URL-адресом для запуска скриптов в BrowserStack Cloud. Для этого войдите в систему — нажмите «Автоматизировать» — скопируйте свое имя пользователя и ключ доступа с левой боковой панели
Шаг 2: Создайте проект maven — проверьте этот пост на наличие того же самого
Шаг 3:Скопируйте приведенный ниже код и запустите Selenium Test в BrowserStack
Учитывая четкое объяснение в разделе комментариев внутри самой программы. Пожалуйста, просмотрите его, чтобы понять процесс.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | пакетные тесты; импортировать java.io.File; импортировать java.net.URL; импортировать java.util.concurrent.TimeUnit; импортировать org.apache.commons.io.FileUtils; импортировать org.openqa.selenium.OutputType; импортировать org.openqa.selenium.Platform; импортировать org.openqa.selenium.TakesScreenshot; импортировать org.openqa.selenium.WebDriver; импортировать org. openqa.selenium.remote.Augmenter;импорт org.openqa.selenium.remote.DesiredCapabilities;импорт org.openqa.selenium.remote.RemoteWebDriver;импорт org.testng.Assert;импорт org.testng.annotations.Test; открытый класс BrowserStackTests {общедоступный драйвер WebDriver; общедоступная статическая конечная строка USERNAME = “rajkumar”; общедоступная статическая финальная строка AUTOMATE_KEY = “rajkumaraccesskey”; общедоступная статическая конечная строка URL = “https://” + USERNAME + “:” + AUTOMATE_KEY + ” @hub.browserstack.com/wd/hub”; @Testpublic void openSTM() throws Exception { //Чтобы выполнять сценарии через удаленный сервер или сетку в нескольких браузерах, нам нужно установить возможности платформы, версии и т. д., чтобы запустить Возможность scriptsDesiredCapabilities = new DesiredCapabilities(); //Создаем URL objectURL browserStackUrl = новый URL(URL);//Создаем объект драйвера. Выполняем скрипты удаленно. Итак, мы используем RemoteWebDriver//Существует множество конструкторов для remotewebdriver //Чтобы передать объект URL и объект Capabilities, используйте указанный ниже конструктор //RemoteWebDriver(URL remoteAddress, Capabilities requiredCapabilities)driver = new RemoteWebDriver (browserStackUrl, возможность);//Неявно подождите 30 секундdriver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);//чтобы открыть urldriver.get(“https://www.softwaretestingmaterial.com”);//чтобы получить текущую urlString ActualURL = driver.getCurrentUrl();//Для печати URL-адреса System.out.println(“URL is “+actualURL);driver.quit();String expectURL = “https://www.softwaretestingmaterial.com/”; //Утверждение для проверки фактического и ожидаемого значенийAssert.assertEquals(actualURL,ожидаемыйURL,”Ожидаемое и фактическое не совпадают”);}} |
Вывод:
1234567891011121314 | [RemoteTestNG] обнаружил версию 6.12.0 TestNG. URL-адрес https://www.softwaretestingmaterial.com/PASSED: openSTM ========================== =================== Тест по умолчанию Выполнено тестов: 1, сбоев: 0, пропусков: 0================ ============================== =================== ============================ SuiteTotal тестов по умолчанию: 1, сбоев: 0, пропусков: 0======== ====================================== |
Скриншоты :
Визуальные журналы:
< h3 id=Run-Selenium-Tests-on-Multiple-Browsers-in-Parallel-on-BrowserStack>Запуск тестов Selenium в нескольких браузерах параллельно в BrowserStack
Скопируйте приведенный ниже текст. код и запустить тест Selenium в BrowserStack
1234567891011121314151617181920212223242526272829303132333343536373839404142434445464748495051525354555657585960616263 | пакетные тесты; импорт java.io.File; импорт java.io.IOException; импорт java.net.URL; импорт java.util.concurrent.TimeUnit; импорт org.apache.commons.io.FileUtils; импорт org.openqa.selenium.OutputType; импортировать org.openqa.selenium.Platform;импортировать org.openqa.selenium.TakesScreenshot;импортировать org.openqa.selenium.WebDriver;импортировать org.openqa.selenium.remote.Augmenter;импортировать org.openqa.selenium.remote.DesiredCapabilities;импортировать org.openqa.selenium.remote.RemoteWebDriver; импортировать org.testng.Assert; импортировать org.testng.annotations.DataProvider; импортировать org.testng.annotations.Test; открытый класс BrowserStackTestsWithDataProvider {общедоступный драйвер WebDriver; общедоступная статическая конечная строка USERNAME = “rajkumar”; общедоступная статическая конечная строка AUTOMATE_KEY = “rajkumaraccesskey”; общедоступная статическая конечная строка URL = “https://” + USERNAME + “:” + AUTOMATE_KEY + ” @hub.browserstack.com/wd/hub”; //Здесь, чтобы передать несколько тестовых данных в скрипт, я использую аннотацию @DataProvider для TestNG @Test(dataProvider=”EnvironmentDetails”)public void openSTM(Platform Platform, String browserName, String browserVersion) throws InterruptedException, IOException {DesiredCapabilitiesibility = новые DesiredCapabilities();capability.setPlatform(платформа);capability.setBrowserName(browserName);capability.setVersion(browserVersion);capability.setCapability(“browserstack.debug”, “true”);URL browserStackUrl = новый URL(URL); driver = new RemoteWebDriver (browserStackUrl, возможность); driver.manage(). .getCurrentUrl();System.out.println(“URL равен “+actualURL);driver.quit();String expectURL = “https://www.softwaretestingmaterial.com/”;Assert.assertEquals(actualURL,ожидаемыйURL,” Failed To Open”);} //передача parallel = true для параллельного запуска тестовых сценариев //DataProvider поддерживает тип возвращаемого значения Object //передача таких значений, как MAC в Chrome 62, Windows 8 в Chrome 62 и Windows 7 в Firefox 57. @DataProvider(name=”EnvironmentDetails”, parallel=true)public Object[][] getData(){Object[][] testData = new Object[][]{{Platform.MAC, “chrome”, “62.0”} ,{Platform.WIN8, “chrome”, “62.0”},{Platform.WINDOWS, “firefox”, “57”}};return testData;}} |
Вывод:
123456789101112131415161718 | [RemoteTestNG] обнаружил версию 6.12.0 TestNG. URL-адрес https://www.softwaretestingmaterial.com/URL-адрес https://www.softwaretestingmaterial.com/URL-адрес https://www.softwaretestingmaterial.com/PASSED: openSTM(WINDOWS, “firefox”, “57”)ПРОШЕЛ: openSTM(MAC, “chrome”, “62.0”)ПРОШЕЛ: openSTM(WIN8, “chrome”, “62.0”) ============== ================================ Тест по умолчанию Выполнено тестов: 3, сбоев: 0, пропусков: 0=== =========================================== ====== ========================================= SuiteTotal тестов по умолчанию: 3, сбои: 0, пропуски: 0============================================ == |
Скриншоты:
Снимок экрана во время выполнения Скрипты Selenium в BrowserStack
Чтобы получить скриншоты, вам нужно запустить следующий код:
driver = (RemoteWebDriver) new Augmenter().augment(driver);File srcFile = (File) ((TakeScreenshot) driver).getScreenshotAs(OutputType.FILE);FileUtils.copyFile(srcFile, новый файл(“/location/to/screenshot.png”)) |
Полный код:
123456789101112131415161718192021222324252627282930313233334353637383940414243444546474849505152535455565758596061626364 | =crayonпакетные тесты; импорт java.io.File; импорт java.io.IOException; импорт java.net.URL; импорт java.util.concurrent.TimeUnit; импорт org.apache.commons.io.FileUtils; импорт org.openqa.selenium.OutputType; импортировать org.openqa.selenium.Platform;импортировать org.openqa.selenium.TakesScreenshot;импортировать org.openqa.selenium.WebDriver;импортировать org.openqa.selenium.remote.Augmenter;импортировать org.openqa.selenium.remote.DesiredCapabilities;импортировать org.openqa.selenium.remote.RemoteWebDriver; импортировать org.testng.Assert; импортировать org.testng.annotations.DataProvider; импортировать org.testng.annotations.Test; открытый класс BrowserStackTestsWithDataProvider {общедоступный драйвер WebDriver; общедоступная статическая конечная строка USERNAME = “rajkumar”; общедоступная статическая конечная строка AUTOMATE_KEY = “rajkumaraccesskey”; общедоступная статическая конечная строка URL = “https://” + USERNAME + “:” + AUTOMATE_KEY + ” @hub.browserstack.com/wd/hub”; @Test(dataProvider=”EnvironmentDetails”)public void openSTM(платформа платформы, String browserName, String browserVersion) выдает InterruptedException, IOException {возможность DesiredCapabilities = new DesiredCapabilities();capability.setPlatform (платформа);capability.setBrowserName(browserName);capability.setVersion(browserVersion);capability.setCapability(“browserstack.debug”, “true”);URL browserStackUrl = новый URL(URL); driver = new RemoteWebDriver (browserStackUrl, возможность); driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);driver.get(“https://www.softwaretestingmaterial.com”); //следующие 3 строки кода захватывают скриншотdriver = (RemoteWebDriver) new Augmenter().augment(driver);File srcFile = (File) ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);FileUtils.copyFile(srcFile, новый файл(“/location/to/screenshot.png”));String factURL = driver.getCurrentUrl();System.out.println(“URL is “+actualURL);driver.quit();String expectURL = “https ://www.softwaretestingmaterial.com/”;Assert.assertEquals(фактическийURL, ожидаемыйURL,”Не удалось открыть”);}@DataProvider(name=”EnvironmentDetails”, parallel=true)public Object[][] getData(){ Object[][] testData = new Object[][]{{Platform.MAC, “chrome”, “62.0”},{Platform.WIN8, “chrome”, “62.0”},{Platform.WINDOWS, “firefox” , “57”}};return testData;}} |
Вывод.
Вы пытались запустить BrowserStack. Поделитесь своим опытом, оставив комментарий ниже в разделе комментариев. Если вам понравился этот пост, поделитесь им с друзьями.
TAG: qa