atesting.ru Блог Как запустить тесты Selenium в BrowserStack [кроссбраузерное тестирование с использованием Selenium]

Как запустить тесты Selenium в BrowserStack [кроссбраузерное тестирование с использованием Selenium]

Как запустить тесты Selenium в BrowserStack [кроссбраузерное тестирование]

В этом посте мы увидим, как запускать тесты Selenium в BrowserStack. Перед этим давайте узнаем, почему мы выполняем тесты Selenium WebDriver в BrowserStack. В этом посте мы узнаем следующее.

Что такое BrowserStack

BrowserStack является одним из премиальных спонсоров Селен. BrowserStack поддерживает автоматические тесты Selenium. Он запускает наши тесты Selenium в облаке. Это очень просто и понятно. Здесь я не говорю об особенностях BrowserStack. Это выходит за рамки данной статьи. Используя BrowserStack, мы можем проводить кроссбраузерное тестирование с помощью Selenium. В этой статье я покажу вам, как проводить кроссбраузерное тестирование с использованием Selenium на BrowserStack.

Вы можете узнать больше о BrowserStack на официальном сайте BrowserStack

Что такое кроссбраузерное тестирование

Кроссбраузерное тестирование — это тип нефункционального теста, который помогает нам убедиться, что наш веб-сайт или веб-приложение работает должным образом в различных веб-браузерах. Мы можем проводить кроссбраузерное тестирование в разных браузерах как вручную, так и автоматически. Чтобы проводить кроссбраузерное тестирование вручную, мы (тестировщики программного обеспечения) создаем тесты для каждого браузера и выполняем их вручную в каждом браузере. Чтобы сделать это автоматически, мы могли бы создать тесты Selenium с несколькими условными операторами, которые выполняют тестовые примеры на основе указанного типа браузера. При тестировании веб-сайта нам необходимо убедиться, что наш веб-сайт отображается одинаково во всех браузерах. Для этого нам нужны все браузеры. К счастью, есть некоторые инструменты (например, CrossBrowserTesting, BrowserStack) для выполнения кроссбраузерного тестирования без индивидуального тестирования вручную.

Посмотрите видео ниже, чтобы посмотреть «Как выполнять сценарии Selenium параллельно с использованием BrowserStack».

Наберитесь терпения. Видео загрузится через некоторое время.

Запуск тестов Selenium на BrowserStack

Приступим с образцом теста, который открывает домашнюю страницу сайта SoftwareTestingMaterial, получает заголовок страницы и проверяет его с помощью утверждения.

Предварительные требования для выполнения кроссбраузерного тестирования с использованием Selenium:

  1. Учетная запись BrowserStack — здесь ссылка для регистрации.
  2. Имя пользователя и ключ доступа BrowserStack.
  3. Selenium Jars
  4. 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; import org.apache.commons.io.FileUtils; import org.openqa.selenium.OutputType; import org.openqa.selenium.Platform; import org.openqa.selenium.TakesScreenshot; import org.openqa.selenium.WebDriver; import org. openqa.selenium.remote.Augmenter; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.Assert; import org.testng.annotations.Test; общедоступный класс BrowserStackTests {общедоступный драйвер WebDriver; общедоступная статическая финальная строка USERNAME = & # 34; rajkumar & # 34 ;; общедоступная статическая финальная строка AUTOMATE_KEY = & # 34; rajkumaraccesskey & # 34 ;; общедоступный статический конечный строковый URL = & # 34; https: //& # 34; + ИМЯ ПОЛЬЗОВАТЕЛЯ + & # 34;: & # 34; + AUTOMATE_KEY + & # 34; @ hub.browserstack.com/wd/hub & # 34 ;; @Test public void openSTM () выдает исключение {//Для выполнения сценариев через удаленный сервер или сетку в нескольких браузерах нам нужно установить возможности платформы, версии и т. Д., Чтобы запускать сценарии DesiredCapabilities capacity = new DesiredCapabilities (); возможность.setPlatform (Platform.MAC); возможность.setBrowserName (& # 34; firefox & # 34;); возможность.setVersion (& # 34; 38 & # 34;); features.setCapability (& # 34; browserstack.debug & # 34 ;, & # 34; true & # 34;);); //Создание URL объекта URL browserStackUrl = новый URL (URL); //Создаем объект драйвера. Выполняем скрипты удаленно. Итак, мы используем RemoteWebDriver //Есть много конструкторов для remotewebdriver //Чтобы передать объект URL и объект Capabilities, используйте указанный ниже конструктор //RemoteWebDriver (URL-адрес remoteAddress, Capabilities requiredCapabilities) driver = new RemoteWebDriver (browserStackUrl, features); //Неявное ожидание в течение 30 секунд driver.manage (). Timeouts (). ImplicitlyWait (30, TimeUnit.SECONDS); //для открытия url-адреса driver.get (& # 34; https: //www.softwaretestingmaterial.com"); //Чтобы получить текущий URL-адрес String actualURL = driver.getCurrentUrl (); //Чтобы напечатать URL-адрес System.out.println (& # 34; URL-адрес & # 34; + actualURL); driver.quit (); Ожидаемая строкаURL = & # 34; https: //www.softwaretestingmaterial.com/&#34 ;; //Подтверждение для проверки фактического и ожидаемого значений Assert.assertEquals (фактический URL-адрес, ожидаемый URL-адрес, & # 34; Ожидаемое и фактическое значения не совпадают & # 34;); }}

Вывод:

1234567891011121314 [RemoteTestNG] Обнаружен TestNG версии 6.12.0URL: https://www.softwaretestingmaterial.com/PASSED: openSTM =========================== ==================== Тест по умолчанию Выполнено тестов: 1, отказов: 0, пропусков: 0 ================ =============================== =================== ============================ Набор по умолчанию Общее количество выполненных тестов: 1, отказов: 0, пропусков: 0 ======== =======================================

Скриншоты:

 Как запустить тесты Selenium в BrowserStack [кроссбраузерное тестирование с использованием Selenium]

Визуальные журналы:

 Как запустить тесты Selenium в BrowserStack [кроссбраузерное тестирование с использованием Selenium]

Параллельно запускать тесты Selenium в нескольких браузерах в BrowserStack

Скопируйте приведенный ниже код и запустите Selenium Test в BrowserStack.

1234567891011121314151617181920212223242526272829303132333435363738394254252627282930313233343536373839404254256454244484345245245644354254344354354354345345345345 >

пакетные тесты; import java.io.File; import java.io.IOException; import java.net.URL; import java.util.concurrent.TimeUnit; import org.apache.commons.io.FileUtils; import org.openqa.selenium.OutputType; import org.openqa.selenium.Platform; import org.openqa.selenium.TakesScreenshot; import org.openqa.selenium.WebDriver; import org.openqa.selenium.remote.Augmenter; import org.openqa.selenium.remote.Desired; import org.openqa.selenium.remote.Desired org.openqa.selenium.remote.RemoteWebDriver; import org.testng.Assert; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; общедоступный класс BrowserStackTestsWithDataProvider {общедоступный драйвер WebDriver; общедоступная статическая финальная строка USERNAME = & # 34; rajkumar & # 34 ;; общедоступная статическая финальная строка AUTOMATE_KEY = & # 34; rajkumaraccesskey & # 34 ;; общедоступный статический конечный строковый URL = & # 34; https: //& # 34; + ИМЯ ПОЛЬЗОВАТЕЛЯ + & # 34;: & # 34; + AUTOMATE_KEY + & # 34; @ hub.browserstack.com/wd/hub & # 34 ;; //Здесь, чтобы передать скрипту несколько тестовых данных, я использую аннотацию @DataProvider для TestNG @Test (dataProvider = & # 34; EnvironmentDetails & # 34;) public void openSTM (Platform platform, String browserName, String browserVersion) выдает InterruptedException, IOException {возможность DesiredCapabilities = new DesiredCapabilities (); возможность.setPlatform (платформа); возможность.setBrowserName (имя браузера); возможность.setVersion (версия браузера); features.setCapability (& # 34; browserstack.debug & # 34 ;, & # 34; true & # 34;);); URL browserStackUrl = новый URL (URL); драйвер = новый RemoteWebDriver (browserStackUrl, возможность); driver.manage (). timeouts (). implicitlyWait (30, TimeUnit.SECONDS); driver.get (& # 34; https: //www.softwaretestingmaterial.com"); Строка actualURL = driver.getCurrentUrl (); System.out.println (& # 34; URL — & # 34; + actualURL); driver.quit (); Ожидаемая строкаURL = & # 34; https: //www.softwaretestingmaterial.com/&#34 ;; Assert.assertEquals (фактический URL-адрес, ожидаемый URL-адрес, & # 34; Не удалось открыть & # 34;); } //передача parallel = true для параллельного запуска тестовых скриптов //DataProvider поддерживает тип возвращаемого объекта //Передача таких значений, как MAC с Chrome 62, Windows 8 с Chrome 62 и Windows 7 с firefox 57 @DataProvider (name = & # 34; EnvironmentDetails & # 34 ;, parallel = true) public Object [] [] getData () {Object [] [] testData = new Object [] [] {{Platform.MAC, & # 34; chrome & # 34 ;, & # 34; 62.0 & # 34;}, {Platform.WIN8, & # 34; chrome & # 34 ;, & # 34; 62.0 & # 34;}, {Platform.WINDOWS, & # 34; firefox & # 34 ;, & # 34; 57 & # 34;}}; return testData; }}

Вывод:

123456789101112131415161718 [RemoteTestNG] обнаружил TestNG версии 6.12.0URL: https://www.softwaretestingmaterial.com/URL: https://www.softwaretestingmaterial.com/URL: https://www.softwaretestingmaterial.com/PASSED: openSTM (WINDOWS, & # 34; firefox & # 34 ;, & # 34; 57 & # 34;) ПРОШЛО: openSTM (MAC, & # 34; chrome & # 34 ;, & # 34; 62.0 & # 34;) ПРОШЛО: openSTM (WIN8, & # 34; хром & # 34 ;, & # 34; 62.0 & # 34;) ================================ =============== Тест по умолчанию Выполнено тестов: 3, отказов: 0, пропусков: 0 ===================== ========================== ======================== ======================= Набор по умолчанию Общее количество выполненных тестов: 3, отказов: 0, пропусков: 0 ============= ==================================

Снимки экрана:

 Как запустить тесты Selenium в BrowserStack [кроссбраузерное тестирование с использованием Selenium]

< h3 id = "Снимок экрана ts-While-Executing-Selenium-Scripts-on-BrowserStack "> Создание снимков экрана при выполнении сценариев Selenium в BrowserStack

Для получения снимков экрана необходимо запустить следующий код:

123 driver = (RemoteWebDriver) new Augmenter (). augment (driver); Файл srcFile = (Файл) ((Драйвер TakesScreenshot)) .getScreenshotAs (OutputType.FILE); FileUtils.copyFile (srcFile, новый файл (& # 34; /location/to/screenshot.png"))

Полный код:

1234567891011121314151617181920212223242526272829303132333435363738394252627282930313233343536373855394254256255644484345245644256485644354455244345245345345345 >

пакетные тесты; import java.io.File; import java.io.IOException; import java.net.URL; import java.util.concurrent.TimeUnit; import org.apache.commons.io.FileUtils; import org.openqa.selenium.OutputType; import org.openqa.selenium.Platform; import org.openqa.selenium.TakesScreenshot; import org.openqa.selenium.WebDriver; import org.openqa.selenium.remote.Augmenter; import org.openqa.selenium.remote.Desired; import org.openqa.selenium.remote.Desired org.openqa.selenium.remote.RemoteWebDriver; import org.testng.Assert; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; общедоступный класс BrowserStackTestsWithDataProvider {общедоступный драйвер WebDriver; общедоступная статическая финальная строка USERNAME = & # 34; rajkumar & # 34 ;; общедоступная статическая финальная строка AUTOMATE_KEY = & # 34; rajkumaraccesskey & # 34 ;; общедоступный статический конечный строковый URL = & # 34; https: //& # 34; + ИМЯ ПОЛЬЗОВАТЕЛЯ + & # 34;: & # 34; + AUTOMATE_KEY + & # 34; @ hub.browserstack.com/wd/hub & # 34 ;; @Test (dataProvider = & # 34; EnvironmentDetails & # 34;) public void openSTM (Platform platform, String browserName, String browserVersion) выдает InterruptedException, IOException {DesiredCapabilitiesabilities = new DesiredCapabilities (); возможность.setPlatform (платформа); возможность.setBrowserName (имя браузера); возможность.setVersion (версия браузера); features.setCapability (& # 34; browserstack.debug & # 34 ;, & # 34; true & # 34;);); URL browserStackUrl = новый URL (URL); драйвер = новый RemoteWebDriver (browserStackUrl, возможность); driver.manage (). timeouts (). implicitlyWait (30, TimeUnit.SECONDS); driver.get (& # 34; https: //www.softwaretestingmaterial.com"); //следующие 3 строки кода захватывают снимок экрана driver = (RemoteWebDriver) new Augmenter (). augment (driver); Файл srcFile = (Файл) ((Драйвер TakesScreenshot)) .getScreenshotAs (OutputType.FILE); FileUtils.copyFile (srcFile, новый файл (& # 34; /location/to/screenshot.png")); Строка actualURL = driver.getCurrentUrl (); System.out.println (& # 34; URL — & # 34; + actualURL); driver.quit (); Ожидаемая строкаURL = & # 34; https: //www.softwaretestingmaterial.com/&#34 ;; Assert.assertEquals (фактический URL-адрес, ожидаемый URL-адрес, & # 34; Не удалось открыть & # 34;); } @DataProvider (name = & # 34; EnvironmentDetails & # 34 ;, parallel = true) public Object [] [] getData () {Object [] [] testData = new Object [] [] {{Platform.MAC, & # 34; chrome & # 34 ;, & # 34; 62.0 & # 34;}, {Platform.WIN8, & # 34; chrome & # 34 ;, & # 34; 62.0 & # 34;}, {Platform.WINDOWS, & # 34; firefox & # 34 ;, & # 34; 57 & # 34;}}; return testData; }}

Заключение:
Вы пробовали запустить BrowserStack? Поделитесь своим опытом, комментируя ниже в разделе комментариев. Если вам понравился этот пост, поделитесь им с друзьями.

TAG: qa