atesting.ru Блог Запуск сценариев Selenium в облаке LambdaTest | Автоматическое кроссбраузерное тестирование

Запуск сценариев Selenium в облаке LambdaTest | Автоматическое кроссбраузерное тестирование

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

Часто мы сталкиваемся с ситуацией, когда нам приходится запускать скрипты selenium с несколькими версиями браузеров. Всегда есть ограничения для запуска на локальных машинах. Мы не можем установить тысячи браузеров на нашем локальном компьютере для выполнения автоматического кроссбраузерного тестирования. Удаленное выполнение в облаке — решение, позволяющее преодолеть это ограничение. LambdaTest Selenium Automation Grid — это облачная масштабируемая платформа тестирования Selenium, которая позволяет пользователям запускать свои сценарии автоматизации в более чем 2000 браузерах и операционных системах. В предыдущем посте (Обзор LambdaTest) мы не упоминали, как запускать автоматические тестовые примеры Java Selenium в облаке LambdaTest. В этой статье мы рассмотрим, как настроить и запустить сценарии тестирования автоматизации на основе Java на облачной платформе LambdaTest Selenium.

Запуск Selenium Сценарии в LambdaTest Cloud | Автоматическое кроссбраузерное тестирование

В этом посте мы будем исследовать следующее:

Что такое LambdaTest

LambdaTest — это облако для кроссбраузерного тестирования, позволяющее разработчикам и тестировщикам выполнять кроссбраузерное тестирование более 2000 реальных браузеров и операционных систем в Интернете с различным разрешением экрана. LambdaTest позволяет нам тестировать новейшие мобильные и настольные браузеры в облаке.

Перейдите по этой ссылке, чтобы узнать больше о LambdaTest

Возможности LambdaTest

  • Он поддерживает непрерывное тестирование с непрерывным Инструменты интеграции, такие как Jenkins, Buildbot, Circle CI, Codeship, Continua, Cruise Control, Bamboo, GOCD, Solano CI, Teamcity, Travis CI.
  • Он поддерживает различные языки и платформы, такие как Python, Java, Javascript, CSharp, Ruby, PHP
  • Тестирование локально размещенных веб-страниц
  • Подробная отладка тестовых примеров
  • Он оснащен более чем 2000 различных браузеров.
  • Самое приятное то, что вы получаете круглосуточную поддержку от технических экспертов LambdaTest.

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

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

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

  1. Учетная запись LambdaTest — здесь ссылка для регистрации.
  2. Имя пользователя и ключ доступа LambdaTest
  3. Java Development Kit (JDK) 1.6 или выше — ссылка для установки Java
  4. Selenium Jars
  5. TestNG Jars

Выполнение тестов Selenium на облачной платформе LambdaTest

Шаг 1. Понимание возможностей Selenium Grid LambdaTest очень важно при использовании платформы LambdaTest Cloud. Selenium Grid LambdaTest использует удаленный веб-драйвер вместо обычного драйвера браузера клиента Selenium. Вы должны вызвать удаленный Webdriver LambdaTest Selenium. Вы должны указать такие детали, как браузер, версию браузера, ОС и разрешение, на котором вы хотите запустить тест, а также конкретные возможности LambdaTest.

Шаг 2: Создайте проект maven — проверьте это сообщение на тот же

Шаг 3: Скопируйте приведенный ниже код и запустите Selenium Test на LambdaTest. Приведенный ниже код тестирует простое приложение для выполнения.

Дано четкое объяснение в разделе комментариев внутри самой программы. Пожалуйста, просмотрите его, чтобы понять, в каком потоке.

12345678910111213141516171819202122222232425262728293031323334353637384677507457647655647647647647647647647647647647647647647647647647647647647685 td>

пакетные тесты; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium. remote.RemoteWebDriver; открытый класс JavaTodo {String username = & # 34; YOUR_USERNAME & # 34 ;; //Добавьте свое имя пользователя String accesskey = & # 34; YOUR_ACCESS_KEY & # 34 ;; //Добавьте ваш ключ доступа static RemoteWebDriver driver = null; Строка gridURL = & # 34; @ hub.lambdatest.com/wd/hub & # 34 ;; логический статус = ложь; общедоступный статический void main (String [] args) {новый JavaTodo (). test (); } Public void test () {//Для установки драйвера setUp (); попробуйте {//Измените его на рабочую страницу driver.get (& # 34; https: //lambdatest.github.io/sample-todo-app/"); //Отметим как выполненные первые два пункта в списке. driver.findElement (By.name (& # 34; li1 & # 34;)). click (); driver.findElement (By.name (& # 34; li2 & # 34;)). click (); //Давайте добавим элемент в список. driver.findElement (By.id (& # 34; sampletodotext & # 34;)). sendKeys (& # 34; Да, давайте добавим его в список & # 34;); driver.findElement (By.id (& # 34; addbutton & # 34;)). click (); //Давайте проверим, что добавленный нами элемент добавлен в список. Строка EnterText = driver.findElementByXPath (& # 34;/html/body/div/div/div/ul/li [6]/span & # 34;). GetText (); if (EnterText.equals (& # 34; Да, давайте добавим его в список & # 34;)) {status = true; }} Catch (исключение e) {System.out.println (e.getMessage ()); } наконец {tearDown (); }} Private void setUp () {/* В этом коде мы передаем информацию о браузере, версии браузера и операционной системе вместе с возможностями сетки LambdaTest Selenium через объект возможностей. Объект возможностей в приведенном выше коде определяется как: */DesiredCapabilitiesabilities = new DesiredCapabilities (); features.setCapability (& # 34; имя браузера & # 34 ;, & # 34; хром & # 34;); features.setCapability (& # 34; версия & # 34 ;, & # 34; 70.0 & # 34;); features.setCapability (& # 34; платформа & # 34 ;, & # 34; win10 & # 34;); //Если этот предел не указан, он просто получит любой доступный. features.setCapability (& # 34; build & # 34 ;, & # 34; LambdaTestSampleApp & # 34;);); features.setCapability (& # 34; name & # 34 ;, & # 34; LambdaTestJavaSample & # 34;); features.setCapability (& # 34; сеть & # 34 ;, истина); //Чтобы включить возможности сетевых журналов. SetCapability (& # 34; visual & # 34 ;, true); //Для включения возможностей пошагового скриншота. SetCapability (& # 34; video & # 34 ;, true); //Чтобы включить возможности записи видео. SetCapability (& # 34; console & # 34 ;, true); //Для записи журналов консоли/* & # 39; browserName & # 39;, & # 39; version & # 39; и & # 39; platform & # 39; самые важные возможности. Они определяют, в какой среде браузера вы хотите запустить тест. Остальные возможности важны для управления тестированием и отладки. */Try {/* если вы планируете запускать свои скрипты в браузере Firefox на локальном компьютере, вы должны использовать драйвер браузера Firefox. т.е. драйвер FirefoxDriver = новый FirefoxDriver (); Однако для запуска ваших скриптов в сетке LambdaTest Selenium вам нужно будет изменить его удаленный WebDriver и в то же время передать возможности, связанные с браузером, версиями браузера и т. Д. Это выглядит так, как показано ниже */driver = new RemoteWebDriver (новый URL (& # 34; https: //& # 34; + имя пользователя + & # 34;: & # 34; + ключ доступа + gridURL), возможности); } catch (MalformedURLException e) {System.out.println (& # 34; Недействительный URL-адрес сетки & # 34;); } catch (исключение e) {System.out.println (e.getMessage ()); }} Private void tearDown () {if (driver! = Null) {((JavascriptExecutor) драйвер) .executeScript (& # 34; lambda-status = & # 34; + status); driver.quit (); //действительно важная инструкция для предотвращения выполнения вашего теста по таймауту. }}}

Шаг 4: Вам необходимо сгенерировать токен доступа. Запишите свое имя пользователя и токен доступа и измените их в приведенном выше коде.

Выполняйте тесты Selenium в нескольких браузерах параллельно на LambdaTest

Если у вас более одного параллельного сеанса, вы можете запускать свои тестовые примеры на нескольких машинах одновременно. Таким образом вы можете значительно сэкономить время выполнения теста.

Скопируйте приведенный ниже код и запустите Selenium Test в нескольких браузерах параллельно на LambdaTest

12345678910111213141516171819202122232425262728293031323334353637383940414243445567576576573576576576576576576576541424344167657657657654147657657654142434556655647657484142434556756485 crayon-code «>пакетные тесты; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.Platform; import org.openqa.selenium.WebDriver; import org.openqa.selenium.remote.DesiredCapabilities; openqa.selenium.remote.RemoteWebDriver; import org.testng.Assert; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import java.net.MalformedURLException; import java.net.URL; открытый класс TestNGTodo {public String username = & # 34; YOUR_USERNAME & # 34 ;; общедоступная строка accesskey = & # 34; YOUR_ACCESS_KEY & # 34 ;; общедоступный статический драйвер RemoteWebDriver = null; общедоступная строка gridURL = & # 34; @ hub.lambdatest.com/wd/hub & # 34 ;; логический статус = ложь; @BeforeClass @ org.testng.annotations.Parameters (value = {& # 34; browser & # 34;, & # 34; version & # 34;, & # 34; platform & # 34;}) public void setUp () выдает исключение { Возможности DesiredCapabilities = новые DesiredCapabilities (); features.setCapability (& # 34; имя браузера & # 34 ;, & # 34; хром & # 34;); features.setCapability (& # 34; версия & # 34 ;, & # 34; 70.0 & # 34;); features.setCapability (& # 34; платформа & # 34 ;, & # 34; win10 & # 34;); //Если этот предел не указан, он просто получит любую доступную возможность. SetCapability (& # 34; build & # 34 ;, & # 34; LambdaTestSampleApp & # 34;); features.setCapability (& # 34; name & # 34 ;, & # 34; LambdaTestJavaSample & # 34;); features.setCapability (& # 34; сеть & # 34 ;, истина); //Чтобы включить возможности сетевых журналов. SetCapability (& # 34; visual & # 34 ;, true); //Для включения возможностей пошагового скриншота. SetCapability (& # 34; video & # 34 ;, true); //Чтобы включить возможности записи видео. SetCapability (& # 34; console & # 34 ;, true); //Для записи журналов консоли попробуйте {driver = new RemoteWebDriver (новый URL (& # 34; https: //& # 34; + имя пользователя + & # 34;: & # 34; + accesskey + gridURL), возможности); } catch (MalformedURLException e) {System.out.println (& # 34; Недействительный URL-адрес сетки & # 34;); } catch (исключение e) {System.out.println (e.getMessage ()); }} @Test public void testSimple () выдает исключение {try {//Измените его на рабочую страницу driver.get (& # 34; https: //lambdatest.github.io/sample-todo-app/") ; //Отметим как выполненные первые два пункта в списке. driver.findElement (By.name (& # 34; li1 & # 34;)). click (); driver.findElement (By.name (& # 34; li2 & # 34;)). click (); //Давайте добавим элемент в список. driver.findElement (By.id (& # 34; sampletodotext & # 34;)). sendKeys (& # 34; Да, давайте добавим его в список & # 34;); driver.findElement (By.id (& # 34; addbutton & # 34;)). click (); //Давайте проверим, что добавленный нами элемент добавлен в список. Строка EnterText = driver.findElementByXPath (& # 34;/html/body/div/div/div/ul/li [6]/span & # 34;). GetText (); if (EnterText.equals (& # 34; Да, давайте добавим его в список & # 34;)) {status = true; }} Catch (исключение e) {System.out.println (e.getMessage ()); }} @AfterClass public void tearDown () выдает исключение {if (driver! = Null) {((JavascriptExecutor) driver) .executeScript (& # 34; lambda-status = & # 34; + status); driver.quit (); }}}

Файл пакета TestNG:

12345678910111213141516171819202122232425262728293031 & lt;? xml version = & # 34; 1.0 & # 34; encoding = & # 34; UTF-8 & # 34;? & gt; & lt;! DOCTYPE suite SYSTEM & # 34; http: //testng.org/testng-1.0.dtd" & gt; & lt; suite thread-count = & # 34; 3 & # 34; name = & # 34; LambaTestSuite & # 34; parallel = & # 34; tests & # 34; & gt; & lt; test name = & # 34; WIN8TEST & # 34; & gt; & lt; имя параметра = & # 34; браузер & # 34; value = & # 34; firefox & # 34;/& gt; & lt; имя параметра = & # 34; версия & # 34; значение = & # 34; 62.0 & # 34;/& gt; & lt; имя параметра = & # 34; платформа & # 34; значение = & # 34; WIN8 & # 34;/& gt; & lt; классы & gt; & lt; class name = & # 34; lambdatest.TestNGTodo & # 34;/& gt; & lt;/classes & gt; & lt;/test & gt; & lt;! — Тест — & gt; & lt; test name = & # 34; WIN10TEST & # 34; & gt; & lt; имя параметра = & # 34; браузер & # 34; value = & # 34; chrome & # 34;/& gt; & lt; имя параметра = & # 34; версия & # 34; значение = & # 34; 70.0 & # 34;/& gt; & lt; имя параметра = & # 34; платформа & # 34; значение = & # 34; WIN10 & # 34;/& gt; & lt; классы & gt; & lt; class name = & # 34; lambdatest.TestNGTodo & # 34;/& gt; & lt;/classes & gt; & lt;/test & gt; & lt;! — Тест — & gt; & lt; test name = & # 34; MACTEST & # 34; & gt; & lt; имя параметра = & # 34; браузер & # 34; value = & # 34; safari & # 34;/& gt; & lt; имя параметра = & # 34; версия & # 34; значение = & # 34; 11.0 & # 34;/& gt; & lt; имя параметра = & # 34; платформа & # 34; значение = & # 34; macos 10.13 & # 34;/& gt; & lt; классы & gt; & lt; class name = & # 34; lambdatest.TestNGTodo & # 34;/& gt; & lt;/classes & gt; & lt;/test & gt; & lt;! — Тест — & gt; & lt;/suite & gt; & lt;! — Suite — & gt;

Вы можете запустить свой набор тестов в нескольких браузерах с простыми аннотациями и параметрами TestNG, не меняя браузеры параметры в скрипте каждый раз.

Вывод:
Кроссбраузерное тестирование является частью наша работа по параллельному запуску Selenium Scripts упрощает нашу жизнь с точки зрения экономии времени. Вы пробовали запускать сценарии Selenium на облачной платформе LambdaTest. Поделитесь своим опытом, комментируя ниже в разделе комментариев. Если вам понравился этот пост, поделитесь им с друзьями.

Ссылка

TAG: qa