В этом посте мы увидим, как запускать скрипты Selenium на облачной платформе LambdaTest. Перед этим давайте узнаем, почему мы выполняем тесты Selenium WebDriver на LambdaTest. В этом посте мы узнаем следующее.
Много раз мы сталкиваемся с ситуацией, когда нам приходится запускать селеновые скрипты с несколькими версиями браузеров. Всегда есть ограничения для запуска на локальных машинах. Мы не можем установить тысячи браузеров на наш локальный компьютер для автоматического кросс-браузерного тестирования. Удаленное выполнение в облаке — это решение для преодоления этого ограничения. LambdaTest Selenium Automation Grid — это масштабируемая облачная платформа для тестирования Selenium, которая позволяет пользователям запускать свои сценарии автоматизации в более чем 2000 браузерах и операционных системах. В предыдущем посте (обзор LambdaTest) мы не упомянули, как запускать автоматизированные тестовые примеры Java Selenium в облаке LambdaTest. В этой статье мы рассмотрим, как настраивать и запускать сценарии автоматизированного тестирования на основе Java на облачной платформе LambdaTest Selenium.
В этом посте мы рассмотрим следующее:
- Что такое LambdaTest
- Возможности LambdaTest
- Что такое кросс-браузерное тестирование
- Предварительные условия для выполнения кросс-браузерного тестирования с помощью Selenium
- Выполнение тестов Selenium на облачной платформе LambdaTest
- Выполнение тестов Selenium в нескольких браузерах параллельно на LambdaTest
Что такое 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< /ul>
Что такое кросс-браузерное тестирование
Кросс-браузерное тестирование — это тип нефункционального теста, который помогает нам убедиться, что наш веб-сайт или веб-приложение работают должным образом в различных веб-браузерах. Мы можем проводить кросс-браузерное тестирование в разных браузерах как вручную, так и автоматически. Чтобы выполнить кросс-браузерное тестирование вручную, мы (тестировщики программного обеспечения) создаем тесты для каждого браузера и выполняем их вручную в каждом браузере. Чтобы сделать это автоматически, мы могли бы создать тесты Selenium с несколькими условными операторами, которые выполняют тестовые случаи на основе указанного типа браузера. При тестировании веб-сайта нам необходимо убедиться, что он отображается одинаково во всех браузерах. Для этого нам нужно иметь все браузеры. К счастью, есть некоторые инструменты (например, CrossBrowserTesting, LambdaTest) для выполнения кросс-браузерного тестирования без индивидуального тестирования вручную.
Предварительные условия для выполнения кросс-браузерного тестирования с использованием Selenium
- Учетная запись LambdaTest — ссылка для регистрации
- Имя пользователя и ключ доступа LambdaTest
- Java Development Kit (JDK) 1.6 или выше — ссылка для установки Java
- Selenium Jars
- TestNG Jars
Запустить Selenium Тесты на облачной платформе LambdaTest
Шаг 1:Понимание возможностей Selenium Grid LambdaTest очень важно при использовании платформы LambdaTest Cloud. Selenium Grid LambdaTest использует удаленный веб-драйвер вместо обычного драйвера браузера клиента Selenium. Вы должны вызвать удаленный веб-драйвер LambdaTest Selenium. Вам необходимо указать такие сведения, как браузер, версия браузера, ОС и разрешение, на которых вы хотите запустить тест, а также конкретные возможности LambdaTest.
Шаг 2. Создайте проект maven — проверьте этот пост. для того же
Шаг 3: Скопируйте приведенный ниже код и запустите Selenium Test на LambdaTest. В приведенном ниже коде проверяется простое приложение для работы со списком дел.
Дано четкое объяснение в разделе комментариев внутри самой программы. Пожалуйста, просмотрите его, чтобы понять процесс.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 пакетные тесты; импортировать java.net.MalformedURLException;импортировать java.net.URL;импортировать org.openqa.selenium.By;импортировать org.openqa.selenium.JavascriptExecutor;импортировать org.openqa.selenium.remote.DesiredCapabilities;импортировать org.openqa.selenium. remote.RemoteWebDriver;public class JavaTodo { String username = “YOUR_USERNAME”; //Добавьте свое имя пользователя String accesskey = “YOUR_ACCESS_KEY”; //Добавьте ключ доступа static RemoteWebDriver driver = null; Строка gridURL = “@hub.lambdatest.com/wd/hub”; логический статус = ложь; public static void main(String[] args) { new JavaTodo().test(); } public void test() { //Для установки драйвера setUp(); try { //Измените его на рабочую страницу driver.get(“https://lambdatest.github.io/sample-todo-app/”); //Отметим выполненными первые два пункта в списке. driver.findElement(By.name(“li1”)).click(); driver.findElement(By.name(“li2”)).click(); //Добавим элемент в список. driver.findElement(By.id(“sampledotext”)).sendKeys(“Да, давайте добавим в список”); driver.findElement(By.id(“добавитькнопку”)).click(); //Проверим, добавлен ли добавленный нами элемент в список. Строка enterText = driver.findElementByXPath(“/html/body/div/div/div/ul/li[6]/span”).getText(); if (enteredText.equals(“Да, добавим в список”)) { status = true; } } catch (Exception e) { System.out.println(e.getMessage()); } finally { tearDown(); } } private void setUp() { /*В этом коде мы передаем информацию о браузере, версии браузера и операционной системе, вместе с возможностями сетки LambdaTest Selenium через объект возможностей. Объект возможностей в приведенном выше коде определяется как:*/ DesiredCapabilitiesbilities = new DesiredCapabilities(); Возможности.setCapability(“имя_браузера”, “хром”); Возможности.setCapability(“версия”, “70.0”); Возможности.setCapability(“платформа”, “win10”); //Если этот предел не указан, он просто получит любой доступный. Возможности.setCapability(“сборка”, “LambdaTestSampleApp”); Возможности.setCapability(“имя”, “LambdaTestJavaSample”); Возможности.setCapability(“сеть”, правда); //Чтобы включить сетевые журналы capabilities.setCapability(“visual”, true); //Чтобы включить пошаговый скриншот capabilities.setCapability(“video”, true); //Чтобы включить запись видео capabilities.setCapability(“console”, true); //Для захвата журналов консоли /* наиболее важными возможностями являются 'название_браузера', 'версия' и 'платформа'. Они определяют, в какой среде браузера вы хотите запустить тест. Остальные возможности важны для управления тестированием и отладки.*/ try { /* если вы планируете запускать сценарии в браузере Firefox на локальном компьютере, вы должны использовать драйвер браузера Firefox. т. е. драйвер FirefoxDriver = новый FirefoxDriver(); Однако для запуска ваших скриптов в сетке LambdaTest Selenium вам придется изменить удаленный WebDriver и в то же время передать возможности, связанные с браузером, версиями браузера и т. д. Это выглядит так, как показано ниже */ driver = new RemoteWebDriver(new URL(” https://” + имя пользователя + “:” + ключ доступа + gridURL), возможности); } catch (MalformedURLException e) { System.out.println(“Недопустимый URL сетки”); } catch (Exception e) { System.out.println(e.getMessage()); } } private void tearDown() { if (driver != null) { ((JavascriptExecutor) driver).executeScript(“lambda-status=” + status); водитель.выйти(); //действительно важное утверждение для предотвращения тайм-аута при выполнении теста. } }} Шаг 4. Вам необходимо сгенерировать токен доступа. Запишите свое имя пользователя и токен доступа и измените их в приведенном выше коде. Параллельные браузеры в LambdaTest
Если у вас несколько одновременных сеансов, вы можете запускать свои тестовые примеры на нескольких компьютерах одновременно. Таким образом, вы можете значительно сэкономить время выполнения теста.
Скопируйте приведенный ниже код и запустите Selenium Test в нескольких браузерах параллельно в LambdaTest
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 пакетные тесты; импортировать org.openqa.selenium.By;импортировать org.openqa.selenium.JavascriptExecutor;импортировать org.openqa.selenium.Platform;импортировать org.openqa.selenium.WebDriver;импортировать org.openqa.selenium.remote.DesiredCapabilities;импортировать org. openqa.selenium.remote.RemoteWebDriver;импорт org.testng.Assert;импорт org.testng.annotations.AfterClass;импорт org.testng.annotations.BeforeClass;импорт org.testng.annotations.Test;импорт java.net.MalformedURLException;импорт java.net.URL;public class TestNGTodo { public String username = “YOUR_USERNAME”; public String accesskey = “YOUR_ACCESS_KEY”; общедоступный статический драйвер RemoteWebDriver = null; public String gridURL = “@hub.lambdatest.com/wd/hub”; логический статус = ложь; @BeforeClass @org.testng.annotations.Parameters(value={“браузер”,”версия”,”платформа”}) public void setUp() throws Exception { Возможности DesiredCapabilities = new DesiredCapabilities(); Возможности.setCapability(“имя_браузера”, “хром”); Возможности.setCapability(“версия”, “70.0”); Возможности.setCapability(“платформа”, “win10”); //Если это ограничение не указано, оно просто получит любое доступное значение capabilities.setCapability(“build”, “LambdaTestSampleApp”); Возможности.setCapability(“имя”, “LambdaTestJavaSample”); Возможности.setCapability(“сеть”, правда); //Чтобы включить сетевые журналы capabilities.setCapability(“visual”, true); //Чтобы включить пошаговый скриншот capabilities.setCapability(“video”, true); //Чтобы включить запись видео capabilities.setCapability(“console”, true); //Чтобы записывать журналы консоли try { driver = new RemoteWebDriver(new URL(“https://” + имя пользователя + “:” + ключ доступа + gridURL), возможности); } catch (MalformedURLException e) { System.out.println(“Недопустимый URL сетки”); } catch (Exception e) { System.out.println(e.getMessage()); } } @Test public void testSimple() throws Exception { try { //Измените его на рабочую страницу driver.get(“https://lambdatest.github.io/sample-todo-app/”); //Отметим выполненными первые два пункта в списке. driver.findElement(By.name(“li1”)).click(); driver.findElement(By.name(“li2”)).click(); //Добавим элемент в список. driver.findElement(By.id(“sampledotext”)).sendKeys(“Да, давайте добавим в список”); driver.findElement(By.id(“добавитькнопку”)).click(); //Проверим, добавлен ли добавленный нами элемент в список. Строка enterText = driver.findElementByXPath(“/html/body/div/div/div/ul/li[6]/span”).getText(); if (enteredText.equals(“Да, добавим в список”)) { status = true; } } catch (Exception e) { System.out.println(e.getMessage()); } } @AfterClass public void tearDown() throws Exception { if (driver != null) { ((JavascriptExecutor) driver).executeScript(“lambda-status=” + status); водитель.выйти(); } }} Файл пакета TestNG:
12345678910111213141516171819202122232425262728293031 <?xml version=”1.0″ encoding=”UTF-8″?><!DOCTYPE suite SYSTEM “http://testng.org/testng-1.0.dtd”><suite thread-count=”3″ name=”LambaTestSuite” parallel=”tests”> <test name=”WIN8TEST”> <parameter name=”browser” value=”firefox”/> <parameter name= “version” value=”62.0″/> <parameter name=”platform” value=”WIN8″/> <classes> <class name=”lambdatest.TestNGTodo”/> </classes> </test > <!– Test –> <test name=”WIN10TEST”> <имя параметра=”browser” value=”chrome”/> <имя параметра=”версия” value=”70.0″/> < ;имя параметра=”платформа” значение=”WIN10″/><classes> <class name=”lambdatest.TestNGTodo”/> </classes> </test> <!– Test –> <test name=”MACTEST”> <parameter name=” browser” value=”safari”/> <имя параметра=”версия” value=”11.0″/> <имя параметра=”платформа” value=”macos 10.13″/> <классы> <имя класса=” lambdatest.TestNGTodo”/> </classes> </test> <!– Test –></suite> <!– Suite –> Вы можете запустить набор тестов в нескольких браузерах с простыми аннотациями и параметрами TestNG, без изменения параметров браузеров в скрипте каждый раз.
Вывод:
Кросс-браузерное тестирование является частью нашей работы, и параллельный запуск Selenium Scripts упрощает нашу жизнь с точки зрения экономии времени. Пробовали ли вы запускать Selenium Scripts на облачной платформе LambdaTest. Поделитесь своим опытом, оставив комментарий ниже в разделе комментариев. Если вам понравился этот пост, поделитесь им с друзьями.Ссылка
TAG: qa