Рубрики
Без рубрики

Выполнение Тестов Автоматизации Selenium С Использованием Selenide, IntelliJ И Знаток

Selenide – это библиотека с открытым исходным кодом для автоматизации тестирования на базе Selenium WebDriver. Здесь мы проводим тестирование Selenium с помощью Selenide с использованием IntelliJ и Maven. Помечено как тестирование, java, scala, веб-разработчик.

На рынке существует множество инструментов, которые используют Selenium в качестве основы и создают поверх нее оболочку для большей настройки, лучшей читаемости кода и меньшего обслуживания, например, Watir, Транспортир и т. Д., Чтобы узнать больше о Watir, пожалуйста, обратитесь Тестирование автоматизации кросс-браузера использование Watir и транспортира, пожалуйста, обратитесь Автоматизированное кросс-браузерное тестирование с помощью Транспортира и Селена .

Мы собираемся взглянуть на другую популярную библиотеку “Selenide”, которая использует Selenium в качестве основы для автоматического кроссбраузерного тестирования.

Тестирование с помощью Selenide, работающее на базе Selenium WebDriver, является бесплатным, поскольку Selenide – это библиотека с открытым исходным кодом для автоматизации тестирования. На самом деле, эта библиотека адресована и больше ориентирована на автоматизированное тестирование, особенно на сжатый API и стабильные тесты. Тестирование селена с помощью селенида было очень удобным и эффективным.

Преимущества Тестирования Селена С Помощью Селенида

Тестирование с помощью Selenide поддерживает несколько языков:

  • Ява
  • Скала
  • Заводной
  • Клоджур

Варианты интеграции – это:

  • Может использовать BDD
  • Можно использовать с JUnit, TestNG, JBehave, Cucumber, Serenity
  • Может использоваться для интеграции с отчетом об объеме, отчетом о привлекательности и т.д.,
  • Поддерживает параллельное выполнение в разных браузерах
  • Объекты страницы

Чтобы узнать о том, какие компании проводят тестирование селена с помощью селенида, пожалуйста, перейдите по этой ссылке.

Зачем Нам Все Еще Нужна Другая Обертка?

Вокруг Selenium WebDriver существует несколько библиотек тестирования, но что делает тестирование Selenium с помощью Selenide особенным?

Ниже приведены некоторые из основных преимуществ проведения тестирования селена с помощью селенида.

  • Краткий тест пользовательского интерфейса : API Selenide состоит из очень немногих классов, которые были построены поверх Selenium. Реализация автоматизированного тестового кода, используемого для тестирования Selenium с помощью Selenide, отличается чистотой, лучшей читабельностью и простотой в использовании.

  • Проблемы AJAX : Прелесть AJAX заключается в том, чтобы заставить веб-страницу извлекать данные с сервера без загрузки всей страницы. Например. , если вы добавляете запись в форму, предположите, что на левой панели страницы отображаются последние добавленные данные, затем вся страница не обновляется, и верните данные. Когда мы автоматизируем это на веб-странице, мы часто сталкиваемся с проблемой “Такого исключения элемента нет”. Чтобы справиться с этим, в Selenium WebDriver следует применить другой метод ожидания. Однако, когда мы проводим тестирование Selenium с помощью Selenide, эта проблема уже решена, и никакого дополнительного кода не требуется.

  • Проблемы с таймаутом : При запуске автоматизации иногда у нас возникает проблема с таймаутом, например. загрузка веб-страницы требует времени или поиск элементов требует времени. Это хорошо обрабатывается с помощью тестирования Selenium с помощью Selenide, по умолчанию он ожидает 4 секунды, если использует встроенные методы Selenide. Кроме того, вы все равно можете настроить больше секунд для лучшей синхронизации.

  • Автоматические скриншоты : Тестирование Selenium с помощью Selenide по умолчанию делает снимок неудачных тестовых случаев, в отличие от Selenium WebDriver. В Selenium WebDriver вам необходимо добавить явный код. Пожалуйста, взгляните на снимок ниже, который на самом деле делает снимок, и поделитесь местоположением, где он находится.

  • Исключение StaleElementException : Это исключение возникает по двум причинам:
  • Элемент больше не прикреплен в DOM, но ваш код мог ссылаться на этот элемент
  • Элемент был полностью удален или изменен с тем же идентификатором или тем же атрибутом.
  • Сконцентрируйтесь на бизнес-логике : Просто сосредоточьтесь на том, что необходимо протестировать для вашей бизнес-логики, остальное Selenide позаботится, например, об условиях, проверке, синхронизации, проблемах с таймаутом, конфигурации браузера и т.д.,
  • Больше внимания уделяется тестированию : Тестирование Selenium с помощью Selenide развивает больше внимания автоматизации тестирования с повышенным удобством в верхней части Selenium WebDriver.

Поскольку Selenide был разработан как оболочка поверх Selenium, вот некоторые ключевые библиотеки, которые могут показаться вам знакомыми, если вы уже использовали фреймворки Selenium:

| селен-java: Использована последняя версия Java API selenium || selenium-сервер: для поддержки сетки selenium для параллельного выполнения || webdrivermanager: для поддержки встроенной конфигурации браузера, чтобы избежать инициализации || testng: Платформа тестирования поддержки || commons-fileupload: для обработки возможности загрузки файлов в ваш сервлет и веб-приложение || junit: Поддержка фреймворка JUnit |

Прелесть тестирования селена с помощью селенида заключается в том,:

  • Вы все еще можете использовать Selenium WebDriver Непосредственно
  • Вы можете использовать любой экземпляр webdriver

Запуск Тестирования Селена С Помощью Селенида

Тестирование селена с помощью Selenide group предлагает 3 простых способа запустить автоматизацию тестирования, а именно:

  • Откройте страницу
  • $($(элемент).Действие()
  • $(элемент).проверка(условие) Например, пожалуйста, взгляните на снимок ниже:
Открыть(https://www.lambdatest.com /) водитель.получить(“https://www.lambdatest.com /)
$(“#отправить”).нажмите(); драйвер.Найти элемент(По имени класса(“#отправить”)).нажмите()
//Условия Строка.findElement(По.имя_класса.сообщение).Gettext()
$(“.$(“.сообщение.”).Должно быть(текст(“Привет”)) Если(текст.содержит(фактические результаты)

Вы можете наблюдать читаемый и лаконичный синтаксис, используемый для тестирования с помощью Selenide.

Тестирование Селена С Помощью Селенида: Настройка Среды

Необходимыми условиями являются JDK 1.8.0 и Intellij. Для установки Java требуется минимум JDK 8, для загрузки на официальном сайте нажмите здесь .

После загрузки установка очень проста и понятна для завершения.

После завершения установки вам необходимо будет настроить путь к классам, чтобы программа понимала, где находится java на вашем компьютере

Это можно сделать в операционной системе Windows, выполнив поиск “Переменные среды” и выбрав “Редактировать системные переменные среды”. Создайте JAVA_HOME в системной переменной и ПУТИ, как указано в приведенном ниже снимке.

Создайте JAVA_HOME в системной переменной и обновите значение, в котором Java находится на вашем компьютере.

Теперь нам нужно отредактировать системную переменную Path и добавить в нее JAVA_HOME, чтобы все программы во время выполнения могли обнаруживать Java на вашем компьютере. Убедитесь, что вы добавили значение после добавления точки с запятой.

Чтобы проверить, правильно ли установлен JDK или нет. Вам необходимо ввести следующую команду: java -версия

Слава! Вы только что успешно установили JDK на свой компьютер.

Тестирование Селена С Помощью Selenide – Загрузка IntelliJ И Настройка Maven проект

На рынке доступно множество идей. В этой статье я рекомендую использовать IntelliJ для тестирования селена с помощью селенида. IntelliJ – это бесплатная Java IDE с открытым исходным кодом (интегрированная среда разработки) для разработки программного обеспечения на основе Java, Kotlin. Этот инструмент имеет версию сообщества и Ultimate, версию IntelliJ для сообщества можно загрузить здесь.

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

Откройте Intellij и выберите “Создать новый проект” в окне панели мониторинга.

Для этой статьи я бы предпочел использовать проект “Maven”. Выберите конкретную версию Java, которую мы установили, и нажмите “Далее” с параметрами по умолчанию.

Введите значения в необходимые поля, такие как идентификатор группы, идентификатор артефакта, и сохраните его в качестве версии по умолчанию.

Оставьте название проекта и выберите, где будет расположен ваш проект.

Созданный проект для тестирования с помощью Selenide отображается в IntelliJ, как указано ниже.

Добавьте зависимость Selenide Maven, как указано ниже:

    
    
        com.codeborne
        selenide
        5.1.0
    

Не стесняйтесь добавлять необходимые временные зависимости в свой путь к классу. Как я уже упоминал ранее, библиотека Selenide поддерживает фреймворки TestNG, JUnit.

Тестирование Селена С Помощью Селенида- Пример Кода (Не Требует Пояснений)

package selenidesamples;

import org.openqa.selenium.By;
import org.testng.Assert;
import org.testng.annotations.Test;

import static com.codeborne.selenide.CollectionCondition.texts;
import static com.codeborne.selenide.Condition.text;
import static com.codeborne.selenide.Selenide.*;

public class LambdaSampleParallelTestAutomation extends BaseConfig_LambdaTest {


    /**
     * Author: Muthuraja R
     * Description: Validate Error message in Registration Page and capture one of error throws correct or not
     */
    @Test
    public void verifyStartTestingButton() {
        //Launch Lambdatest page
        open("https://www.lambdatest.com/");
        //use CSS Selector to find element and click for navigating register page
        $(".nav>li.login>a").click();
        //Verifying Page title using Selenide reusable method
        Assert.assertEquals("Sign up for free | Cross Browser Testing Tool | LambdaTest - LambdaTest", title());
        //Verifying text "Sign up"
        $(".signup-titel").shouldHave(text("SIGN UP"));
        //Feeding value to the text using .val
        //Feeding value to the text using sendkeys
        $(By.name("organization_name")).val("org");
        $(By.name("name")).sendKeys("Name");
        $(By.name("email")).sendKeys("test@gmail.com");
        $(By.name("password")).sendKeys("test1234");
        //using shortcut to signup instead of clicking button
        $(By.name("phone")).val("13452").pressEnter();
        //Capturing actual results and verifying with expected one using collections
        $$(".error-mass").shouldHave(
                texts("This email is already registered",
                        "Please enter a valid Phone number",
                        "To proceed further you must agree to our Terms of Service and Privacy Policy"));
    }

}

В приведенном выше примере:

  • Войдите на страницу тестирования Лямбды.
  • Нажмите на кнопку Зарегистрироваться.
  • Введите неверное значение в организации, полное имя, рабочий адрес электронной почты, желаемый пароль и телефон для назначения в обязательных полях, чтобы убедиться, что он возвращает ошибку.
  • Наконец, зафиксируйте все ошибки, возникающие на странице, с помощью коллекций.

По сравнению с предыдущим разделом, тестирование с помощью селенида является легким, простым в использовании и обеспечивает лучшую читаемость по сравнению с Selenium. Я не включал конфигурацию браузера или какие-либо предварительные условия, такие как @BeforeClass или @BeforeMethod, и не использовал циклы для повторения и получения содержимого сообщения об ошибке.

Чтобы просто запустить свой локальный браузер, просто используйте url-адрес и напишите базовый тест, как упоминалось выше.

Браузер по умолчанию – браузер “chrome”, если вы не указали какую-либо конфигурацию. Вот результат теста для локального выполнения теста без настройки браузера.

Хотите Выполнить Тестирование Selenium С Помощью Selenide В Другом Браузере?

Запустить тот же тест в других браузерах также довольно просто. Например, в случае, если вы хотите использовать браузер Firefox, я настроил, как показано ниже.

Чтобы узнать больше о конфигурации браузера и о том, как узнать, какие браузеры поддерживает Selenide, пожалуйста, взгляните на снимок ниже.

Многократно Используемые Команды Для Тестирования Селена С Помощью Селенида Здесь мы глубоко погружаемся в команды многократного использования селенида:

package selenidesamples;

import org.openqa.selenium.By;
import org.testng.Assert;
import org.testng.annotations.Test;

import static com.codeborne.selenide.CollectionCondition.texts;
import static com.codeborne.selenide.Condition.text;
import static com.codeborne.selenide.Selenide.*;

public class LambdaSampleParallelTestAutomation extends BaseConfig_LambdaTest {


    /**
     * Author: Muthuraja R
     * Description: Validate Error message in Registration Page and capture one of error throws correct or not
     */
    @Test
    public void verifyStartTestingButton() {
        //Launch Lambdatest page
        open("https://www.lambdatest.com/");
        //use CSS Selector to find element and click for navigating register page
        $(".nav>li.login>a").click();
        //Verifying Page title using Selenide reusable method
        Assert.assertEquals("Sign up for free | Cross Browser Testing Tool | LambdaTest - LambdaTest", title());
        //Verifying text "Sign up"
        $(".signup-titel").shouldHave(text("SIGN UP"));
        //Feeding value to the text using .val
        //Feeding value to the text using sendkeys
        $(By.name("organization_name")).val("org");
        $(By.name("name")).sendKeys("Name");
        $(By.name("email")).sendKeys("test@gmail.com");
        $(By.name("password")).sendKeys("test1234");
        //using shortcut to signup instead of clicking button
        $(By.name("phone")).val("13452").pressEnter();
        //Capturing actual results and verifying with expected one using collections
        $$(".error-mass").shouldHave(
                texts("This email is already registered",
                        "Please enter a valid Phone number",
                        "To proceed further you must agree to our Terms of Service and Privacy Policy"));
    }

}

В приведенном выше простом методе многократного использования мы рассмотрим, что такое “$” и “$$”, а также действие селена и условные команды.

Определения методов $ и $$:

В терминологии Селенидов:

  • $ Указать, находит ли Один Элемент
  • $$ Указать, что найдено более одного элемента используемых коллекций

В приведенном выше снимке аргумент в методе Selenide принимает разные типы:

  • ВебЭлемент (Элемент)
  • css-селектор в виде строки
  • Xpath в виде строки
  • Селектор селена как по (например, по.xpath(“”)) Для селектора css и xpath вы можете назначить локатор непосредственно в виде строки, которая проста в использовании и обслуживании локаторов.

Условия:

В приведенном выше примере программы мы используем следующее условие для проверки результатов без утверждения:

  • $(“.регистрационный номер”).должно быть(текст(“ЗАРЕГИСТРИРОВАТЬСЯ”));
  • В этом методе я проверяю, существует ли текст “ЗАРЕГИСТРИРОВАТЬСЯ”, который я использую методом “shouldHave”
  • “.название регистрации” – это локатор css
  • $ указывает на поиск/возврат одного элемента

  • $$(“.ошибка-масса”).Должно быть(тексты(“Это электронное письмо уже зарегистрировано”, “Пожалуйста, введите действительный номер телефона”, “Другое условие для проверки…..”));

  • Использовал селектор CSS для поиска сообщения об ошибке, которое возвращает более одной ошибки.

  • должен быть метод проверки состояния, при котором появляется необходимый текст.

  • тексты принимают аргумент в массиве, где вы можете передать несколько ожидаемых текстовых условий.

  • Этот метод должен проверять соответствие между фактическими и ожидаемыми результатами.

В сборке вышеуказанное условие, как и должно быть, должно демонстрировать интеллектуальные возможности ожидания:

  • должно быть (“видимым”)
  • должно быть (Текст(“Привет, тест”))
  • не Должно Быть (“выбрано”)
  • должен(“исчезнуть)

По умолчанию метод $.should() ожидает до 4 секунд. Однако, если вы хотите изменить время ожидания, вы можете настроить его следующими способами:

  • Конфигурация.тайм-аут=4000 (миллисекунд)
  • Mvn//конкретная команда mvn

Для проверки ожидаемого текста в коллекциях:

$(By.xpath("//p[@class='error-mass']")).shouldBe(Condition.visible).shouldHave(
        textCaseSensitive("This email is already registered",
            "Another Text",
            "Another Text"));

Дополнительные Функции:

$(“div”).вершина прокрутки(); $(“див”).двойной щелчок();
$(“div”).внутренний текст(); $(“div”).контекстный щелчок();
$(“div”).innerHTML(); $(“div”).наведите курсор();
$(“div”).существует(); $(“div”).Перетаскивание();
$(“выбрать”).Изображение(); Увеличение(3,5) ;
$(выберите”).getSelectedText(); $(“выбрать).getSelectedValue();.. гораздо больше

Автоматизация Кроссбраузерных параллельных тестов

До сих пор мы видели, как реализовать тестирование Selenium с помощью Selenide и запустить тест в одном экземпляре с помощью локального браузера.

Постановка задачи : Выполнение одних и тех же тестов в нескольких браузерах и их нескольких версиях на последовательной основе является утомительным и морально изматывающим процессом. Кроме того, становится невозможным получить обратную связь по результатам тестирования автоматизации как можно раньше или в ближайшее время. Особенно в гибком окне выпуска после процесса интеграции CI/CD ( Непрерывная интеграция и непрерывная доставка ). В вашей локальной системе вы можете установить ограниченное количество браузеров, что делать, если вы хотите использовать 40-50 браузеров или даже больше с несколькими версиями браузера?

Решение: Селеновая сетка: Для решения этой проблемы Selenium Grid является решением. Есть возможность решить эту проблему, добавив дополнительные компьютеры в качестве узла selenium, в котором используются наши желаемые возможности для передачи соответствующей версии браузера. Однако поддержание локальной сети может быть очень сложной задачей. Именно здесь “облачные” решения играют жизненно важную роль.

LambdaTest – Бесплатный инструмент для кросс-браузерного тестирования: LambdaTest предлагает автоматическое и интерактивное кросс-браузерное тестирование в режиме реального времени на сетке Selenium, состоящей из более чем 2000 реальных браузеров и операционной системы онлайн. Лямбда-тест имеет возможность выбирать несколько операционных систем с помощью комбинации своего браузера, чтобы обеспечить бесперебойную работу вашего веб-приложения в различных конфигурациях. В реальном мире большая часть тестирования проводится в Windows с комбинацией Chrome, Firefox и т.д. Как насчет платформы Linux с разными браузерами? Как насчет MAC OS с браузером IE? Вы можете проверить все это с помощью лямбда-теста для тестирования совместимости браузера .

Лямбда-тест также предлагает параллельную автоматизацию кроссбраузерных тестов. Мы можем запустить один тест автоматизации в нескольких браузерах и их версиях.

В разделе ниже я собираюсь настроить сетку Selenium (концентратор и узел) и как параллельно запускать тесты в браузерах Chrome и Firefox с помощью TestNG suite.xml

Настройка конфигурации сетки Selenium:

  • Перейдите на веб-сайт seleniumhq.
  • Скачайте последнюю версию Selenium Server и храните в удобном для вас месте папки.

Чтобы запустить Selenium Grid локально, перейдите в расположение папки в командной строке и введите команду, как указано ниже. java –jar selenium-server-standalone-3.141.59.jar –ролевой центр

  • концентратор указывает сервер, на котором он выступает в качестве хоста и управляет вашим браузером. Сервер Selenium успешно запускается, как показано на приведенном ниже снимке.

Теперь очередь за селеновым узлом.

Настройка конфигурации узла Selenium:

На приведенном выше снимке я загрузил драйвер Chrome и драйвер Firefox, которые необходимы для запуска вашего теста в удаленном экземпляре. Я также создал пакетный файл для запуска конфигурации одним щелчком мыши вместо того, чтобы каждый раз открывать командную строку и вводить команды.

Чтобы создать пакетный файл, введите следующие команды. Пожалуйста, убедитесь, что расширение должно быть “.bat”. java -jar selenium-server-standalone-3.141.59.jar -ролевой узел -концентратор http://localhost:4444/grid/зарегистрировать

Чтобы запустить пакетный файл, перейдите в определенную папку в командной строке и введите “имя файла вашего пакетного файла”, как указано в приведенном ниже снимке.

Чтобы проверить отсутствие экземпляра браузера в консоли сетки, перейдите в http://localhost:4000

По умолчанию существует 5 браузеров Firefox, 5 Chrome и 1 браузер IE. Это зависит от вашего удобного количества требуемых экземпляров браузера, которые можно настроить в конфигурации вашего узла Selenium.

Теперь пришло время запустить параллельную автоматизацию на кроссбраузерной платформе.

Тестирование Selenium С помощью Selenide– Пример кода (Не требует пояснений): Кроссбраузерная Параллельная Автоматизация в локальных

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

Производный класс:

package selenidesamples;

import org.openqa.selenium.By;
import org.testng.Assert;
import org.testng.annotations.Test;

import static com.codeborne.selenide.CollectionCondition.texts;
import static com.codeborne.selenide.Condition.text;
import static com.codeborne.selenide.Selenide.*;

public class LambdaSampleParallelTestAutomation extends BaseConfig_LambdaTest {


    /**
     * Author: Muthuraja R
     * Description: Validate Error message in Registration Page and capture one of error throws correct or not
     */
    @Test
    public void verifyStartTestingButton() {
        //Launch Lambdatest page
        open("https://www.lambdatest.com/");
        //use CSS Selector to find element and click for navigating register page
        $(".nav>li.login>a").click();
        //Verifying Page title using Selenide reusable method
        Assert.assertEquals("Sign up for free | Cross Browser Testing Tool | LambdaTest - LambdaTest", title());
        //Verifying text "Sign up"
        $(".signup-titel").shouldHave(text("SIGN UP"));
        //Feeding value to the text using .val
        //Feeding value to the text using sendkeys
        $(By.name("organization_name")).val("org");
        $(By.name("name")).sendKeys("Name");
        $(By.name("email")).sendKeys("test@gmail.com");
        $(By.name("password")).sendKeys("test1234");
        //using shortcut to signup instead of clicking button
        $(By.name("phone")).val("13452").pressEnter();
        //Capturing actual results and verifying with expected one using collections
        $$(".error-mass").shouldHave(
                texts("This email is already registered",
                        "Please enter a valid Phone number",
                        "To proceed further you must agree to our Terms of Service and Privacy Policy"));
    }

}

Базовый класс:

package selenidesamples;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Parameters;

import java.net.MalformedURLException;
import java.net.URL;

import static com.codeborne.selenide.Selenide.open;
import static com.codeborne.selenide.WebDriverRunner.setWebDriver;

public class BaseConfig_LambdaTest {
    private WebDriver driver;
    private DesiredCapabilities desiredCapabilities;

    public String getLambdaUserName() {
        return System.getenv("LAMBDA_USERNAME");
    }

    public String getLambdaPassword() {

        return System.getenv("LAMBDA_PASSWORD");
    }

    @BeforeClass
    @Parameters({"browserName", "platform", "browserVersion", "visualEnable"})
    public void init(String browserName, String platform, String browserVersion, String visualEnable) throws MalformedURLException {
        desiredCapabilities = new DesiredCapabilities();
        if (browserName.equals("chrome")) {
            desiredCapabilities.setCapability("browserName", "chrome");
        } else if (browserName.equals("firefox")) {
            desiredCapabilities.setCapability("browserName", "firefox");
        }
        desiredCapabilities.setCapability("platform", platform);
        desiredCapabilities.setCapability("version", browserVersion);
        desiredCapabilities.setCapability("visual", visualEnable);
        desiredCapabilities.setCapability("build", "LambdaTestBuild");
        desiredCapabilities.setCapability("name", "LambdaTest Execution");
        System.out.println("https://" + getLambdaUserName() + ":" + getLambdaPassword() + "@hub.lambdatest.com/wd/hub");
        driver = new RemoteWebDriver(new URL("https://muthu.crr:Kw8xyUoShEO9GAtPqW509OWHggQYzzaLJnznu9R3RChfRSnmhh@hub.lambdatest.com/wd/hub"), desiredCapabilities);
        //driver = new RemoteWebDriver(new URL("https://" + getLambdaUserName() + ":" + getLambdaPassword() + "@hub.lambdatest.com/wd/hub"), desiredCapabilities);
        setWebDriver(driver);
        open("https://www.lambdatest.com/");
        driver.manage().window().maximize();
    }

    @AfterClass
    public void tearDown() {
        if (driver != null)
            driver.quit();

    }


}

Какова Желаемая способность?

Это пары ключ/значение, в которых хранятся свойства браузера, свойства платформы и т.д., Например. , Это зависит от того, какое имя браузера, версия браузера, название платформы, например Windows 10, Linux и т.д., Это будет определять поведение браузера во время выполнения.

Метод setCapability помогает инициализировать и сообщить “WebDriver”, какую среду и браузер запускать.

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

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

Класс Baseconfig – это “Базовый класс”, который содержит параметры, класс до и класс после, которые фактически являются аннотацией TESTNG. Чтобы узнать более подробную информацию о ТЕСТИРОВАНИИ, пожалуйста, посетите здесь, но этот пример пошагово показывает, как я разработал образец теста.

Шаг 1: Настройте XML-файл TestNG с настройкой потока и параметризацией, как показано ниже.

количество потоков 5 (Укажите, сколько потоков нужно подсчитать)
Параметр Инициализируйте имя параметра и его значение, например, для chrome или firefox
Класс Включить имя класса указывает, какой класс вы хотели бы выполнить

ТЕСТИРОВАНИЕ облегчает вашу жизнь с точки зрения параллельного выполнения тестов. Настройте тот же класс под тегом Test в наборах и убедитесь, что параметры добавлены в тест для независимого выполнения.

Шаг 2: Имя @Parameters должно совпадать с тем, что указано в тестировании suites.xml

При выполнении этого кода в нескольких потоках создаются два экземпляра браузера, которые запускают ваш тест параллельно.4

Поскольку мы уже настроили сервер selenium, и он запущен. Мы используем удаленный драйвер для инициализации сведений о хосте сервера и настройки желаемых возможностей.

установите WebDriver(драйвер): Этот метод важен для инициализации вашей индивидуальной конфигурации браузера, позвольте WebDriverRunner в рамках Selenide, в противном случае он выдаст ошибку тайм-аута и рассмотрит браузер по умолчанию (chrome), который выполнит тест в одном экземпляре.

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

Выполнение Параллельного Теста В Лямбда-Тесте Для Тестирования Селена С Селенидом

Выполнить один и тот же тест параллельно на лямбда-тесте очень просто и прямолинейно. Я собираюсь объяснить некоторые сценарии в лямбда-тесте, за исключением нескольких настроек в коде класса BaseConfig и TestNG.

В этом примере я добавил еще несколько параметров для запуска того же скрипта в лямбда-тесте.

Имя браузера Индивидуальный способ настройки имени вашего браузера, например Chrome, Firefox и т.д.
Платформа Лямбда-тест предлагает запускаться на разных платформах Windows 10, Linux и т.д.,
Версия браузера Лямбда-тест предлагает вам выбрать другую версию браузера, которая на самом деле поможет вам проверить ваш тест, например, как ваш продукт используется клиентами
Визуальное Включение Эта функция в основном предназначена для записи всего выполнения в видео и журналах.

Вы все еще можете добавить индивидуальную конфигурацию, пожалуйста, посетите здесь .

Изменения В Базовом Классе Конфигурации Для Лямбда-теста

В приведенном выше коде я использую два метода, которые:

  • получить имя пользователя Лямбда()
  • Пароль getLambda()

Эти методы фактически получат учетную запись пользователя и пароль для лямбда-теста из переменной среды, которую вы установили на компьютере.

Как Установить Переменную Среды Для Имени Пользователя/Пароля Лямбда-Теста?

В Windows 10 -> Переменная среды поиска -> Изменить системную переменную среды -> Нажать кнопку Создать

  • Введите имя переменной как “LAMBDA_USERNAME”.
  • Введите значение переменной как “YOUR_LAMBDA_ACCOUNT”.

Примечание:

  • Аналогично сделайте то же самое для пароля
  • Ключ API может быть сгенерирован на странице вашего профиля при входе в лямбда-тест
  • Нажмите кнопку “Ок”.
  • Работать Параллельно:
  • Открыть “testsuites_Parallel_Lambda.xml “.

Результаты теста выполняются на портале Lambda Test, и результат может быть отображен на приведенном ниже снимке.

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

  • Резюме
  • Исключение
  • Команда
  • Сеть
  • Бревна
  • Метаданные

Вывод:

Selenide – замечательная библиотека, которая на самом деле решает многие проблемы, разработанные поверх Selenium. Эта библиотека поможет вам выполнить ваш тест с лучшей повторяемостью и удобочитаемостью. Преимущество использования этого инструмента заключается в том, что вы все еще можете написать как Selenium WebDriver, так и часть кода Selenide в своей структуре, которая делает ее стабильной и надежной.

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

Первоисточник: Первоисточник:

Статьи по теме

  1. Автоматическое Тестирование С Помощью JUnit И Selenium Для Совместимости С Браузерами
  2. 13 Причин, По которым Selenium WebDriver Должен Быть Вашим Первым Выбором для Автоматизированного Тестирования!
  3. Как Использовать Селекторы CSS В Сценариях Автоматизации Selenium?
  4. Автоматизированное Тестирование С Помощью Selenium, Cucumber и Тестирования

Оригинал: “https://dev.to/muthuraja/running-selenium-automation-tests-using-selenide-intellij-and-maven-3d0e”