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

Селеновый удаленный веб-драйвер: что это? Чем Он Отличается От WebDriver?

Selenium приобрел огромную популярность как наиболее предпочтительный инструмент автоматизации тестирования. Это используется… Помечено selenium webdriver, селен, java, автоматизация.

Selenium приобрел огромную популярность как наиболее предпочтительный инструмент автоматизации тестирования. Он широко используется для тестирования веб-приложений, поскольку поддерживает множество языков программирования, операционных систем и браузеров. Кроме того, реализация Selenium test automation относительно проста, что позволяет легко интегрировать ее с другими фреймворками.

Как вы уже знаете, существуют различные компоненты Selenium, включая Selenium IDE, Selenium RC, Selenium Grid и Selenium WebDriver. И Selenium WebDriver является наиболее важным компонентом набора инструментов Selenium. Но знаете ли вы, что такое RemoteWebDriver и чем он отличается от WebDriver?

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

Вот подробное руководство по что такое Селен для непосвященных.

Что такое Selenium WebDriver?

Selenium WebDriver позволяет взаимодействовать с браузерами напрямую с помощью сценариев автоматизации. Он поддерживает различные платформы и выполняется быстрее, чем Selenium RC (который сейчас устарел) или IDE. Selenium WebDriver предоставляет множество клиентских библиотек для таких языков программирования, как Java, Python, Ruby, C# и т.д. для создания ваших сценариев автоматизации тестирования Selenium. Библиотеки можно загрузить по этому пути .

Связь между этими клиентами и сервером осуществляется по проводному протоколу JSON. Например: когда дается команда открыть браузер с определенным URL-адресом, вся необходимая информация, такая как тип браузера, версия браузера и желаемые возможности, будет использоваться для создания полезной нагрузки JSON. Клиент отправит эту полезную нагрузку, содержащую всю необходимую информацию, по проводному протоколу JSON через HTTP-клиент r. Затем сервер определит тип браузера, в котором должна быть выполнена команда, и запустит указанную команду в этом конкретном браузере.

Это базовая архитектура Selenium WebDriver. Теперь пришло время перейти к Selenium RemoteWebDriver и посмотреть, как работает Selenium Grid RemoteWebDriver.

Что такое Selenium RemoteWebDriver?

Selenium RemoteWebDriver используется для запуска пакета автоматизации браузера на удаленной машине. Другими словами, RemoteWebDriver – это класс, реализующий интерфейс WebDriver на удаленном сервере. Классы драйверов браузера, такие как FirefoxDriver, ChromeDriver, InternetExplorerDriver и т. Д., Расширяют класс удаленного WebDriver.

Класс Selenium RemoteWebDriver может быть реализован в рамках этого пакета-

java.lang.Object
org.openqa.selenium.remote.RemoteWebDriver

Это реализованные интерфейсы для Selenium RemoteWebDriver-

Hascapabilities, hasinputdevices, Интерактивный, имя_пользователя, имя_пользователя, селектор, идентификатор, ссылочный текст, имя_пользователя, имя_пользователя, путь, JavascriptExecutor, searchcontext, TakesScreenshot, WebDriver

Это известные подклассы для Selenium RemoteWebDriver-

ChromeDriver, Пограничный драйвер, FirefoxDriver, InternetExplorerDriver, OperaDriver, SafariDriver

Это базовая архитектура Selenium RemoteWebDriver. Вы также можете обратиться к официальной документации Selenium для получения подробной информации о Selenium RemoteWebDriver.

Основная функция Selenium RemoteWebDriver заключается в том, чтобы выступать в качестве интерфейса для выполнения тестов на удаленной машине или в распределенной среде. И это наиболее существенное различие между Selenium RemoteWebDriver и Selenium WebDriver.

Для удаленного запуска тестов мы можем использовать Selenium Grid RemoteWebDriver. Здесь нам нужно будет передать экземпляр RemoteWebDriver, определив удаленный URL-адрес и желаемые возможности. В следующем разделе будет объяснено, как запустить этот экземпляр в сетевой сетке Selenium .

Внедрение Selenium Grid и RemoteWebDriver

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

Существует два основных компонента селеновой сетки, а именно-

  1. Хаб
  2. Узел

Концентратор действует как сервер, а узел – это удаленная машина, на которой тесты выполняются в нескольких операционных системах и браузерах. Тип браузера и платформа, на которой тесты должны выполняться на удаленной машине, должны быть определены в Желаемых возможностях .

Ниже перечислены шаги, которые вам необходимо выполнить для настройки сетки Selenium-

Шаг 1: Загрузите автономную банку Selenium с официального сайта Selenium.

Шаг 2: Теперь нам нужно определить концентратор и узел для выполнения наших тестов. Для определения Концентратор , откройте командную строку (cmd.exe ) и перейдите в папку, в которой находится автономная банка Selenium. Введите следующую команду-

java -jar selenium-server-standalone-3.141.59.jar -role hub

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

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

Шаг 3: Как только концентратор запущен, мы должны настроить Узел в другой системе для запуска наших тестов. Чтобы настроить Узел , откройте командную строку, перейдите к пути к автономной папке Selenium и введите следующую команду-

Java -jar selenium-server-standalone-3.141.59.jar -role node -hub http://localhost:4444/grid/register -port 1414

Вам необходимо будет указать номер порта для узла с помощью параметра -port, за которым следует номер порта (в данном случае 1414).

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

Шаг 4: Чтобы проверить успешную настройку, откройте localhost:4444/сетка/консоль в браузере, в котором отображаются сведения о настроенной Узел и Хаб .

Несколько узлов могут быть сконфигурированы, как описано выше, и могут быть запущены тесты.

Шаг 5: После настройки концентратора и узла мы можем запустить наши тесты с помощью сценария автоматизации.

Ниже показан пример кода для проверки функциональности входа на веб-сайт. В этом коде мы реализовали экземпляр Selenium Grid RemoteWebDriver-

package Demo;
import java.net.MalformedURLException;
import java.net.URL;

import org.openqa.selenium.By;
import org.openqa.selenium.Platform;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.annotations.Test;

public class GridDemo {

  @Test
    public void login() throws MalformedURLException{
        DesiredCapabilities dr = DesiredCapabilities.firefox();
//specify the browser
        dr.setBrowserName("firefox");  
//specify the environment                
        dr.setPlatform(Platform.WINDOWS);     

  //specify the hub URL           
        RemoteWebDriver driver=new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), dr);
        driver.navigate().to("https://opensource-demo.orangehrmlive.com/");
        driver.findElement(By.id("txtUsername")).sendKeys("Admin");
        driver.findElement(By.id("txtPassword")).sendKeys("admin123");
        driver.close();

}
}

В этом коде мы реализовали экземпляр Selenium Grid RemoteWebDriver-





  
      
      
      
   
 

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

Выполнение Тестов На Лямбда-Тестовой Сетке Selenium

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

Вы можете использовать сетку Selenium для лямбда-тестов, которая эффективно выполняет тесты в распределенных средах без каких-либо настроек конфигурации. Вам просто нужно войти в свою учетную запись Lambda Test и запустить скрипт автоматизации. Вы можете зарегистрироваться бесплатно, не так ли здесь .

Разве это не потрясающе?

Как только вы войдете в свою тестовую учетную запись Lambda, вам будет предоставлено уникальное Имя пользователя и Маркер доступа/Ключ . Вы можете найти эти данные в Профиле раздел . Эти учетные данные могут быть использованы в вашем сценарии автоматизации, и вы можете начать запускать свои первые в истории сценарии Selenium Grid RemoteWebDriver.

Ниже приведен простой код для выполнения функций входа в систему в различных браузерах и операционных системах с помощью лямбда-тестовой сетки. В этом коде мы внедрили экземпляр Selenium Grid RemoteWebDriver в облаке лямбда-теста-

Package com.ParallelTestInGrid;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class gridTesting {
    String username = "USERNAME";           //Enter your username 
    String accesskey = "ACCESSKEY";         //Enter your accesskey
    static RemoteWebDriver driver = null;
    String gridURL = "@hub.lambdatest.com/wd/hub";

    boolean status = false;

    @BeforeTest
    @Parameters("browser")
    public void setUp(String browser)throws MalformedURLException  
    {           
        if(browser.equalsIgnoreCase("chrome"))
        {
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("browserName", "chrome");    //To specify the browser
        capabilities.setCapability("version", "70.0");      //To specify the browser version
        capabilities.setCapability("platform", "win10");    // To specify the OS
        capabilities.setCapability("build", "LambdaTestApp");  //To identify the test 
        capabilities.setCapability("name", "LambdaTestGridExample");
        capabilities.setCapability("network", true);        // To enable network logs
        capabilities.setCapability("visual", true);     // To enable step by step screenshot
        capabilities.setCapability("video", true);          // To enable video recording
        capabilities.setCapability("console", true);        // To capture console logs
        try {
            driver = new RemoteWebDriver(new URL("https://" + username + ":" + accesskey + gridURL), capabilities);
        } catch (MalformedURLException e) {
            System.out.println("Invalid grid URL");
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
        }

        else if(browser.equalsIgnoreCase("Firefox"))
        {
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("browserName", "Firefox");   //To specify the browser
        capabilities.setCapability("version", "76.0");      //To specify the browser version
        capabilities.setCapability("platform", "win10");    // To specify the OS
        capabilities.setCapability("build", "LambdaTestApp");   //To identify the test
        capabilities.setCapability("name", "LambdaTestGridExample");
        capabilities.setCapability("network", true);        // To enable network logs
        capabilities.setCapability("visual", true);         // To enable step by step screenshot
        capabilities.setCapability("video", true);      // To enable video recording
        capabilities.setCapability("console", true);        // To capture console logs
        try {
            driver = new RemoteWebDriver(new URL("https://" + username + ":" + accesskey + gridURL), capabilities);
        } catch (MalformedURLException e) {
            System.out.println("Invalid grid URL");
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
}
}


        @Test
        public void Login() {
            driver.get("https://opensource-demo.orangehrmlive.com/");
            String pageTitle = driver.getTitle();                   
            System.out.println("The title of this page is ===> " +pageTitle);
            driver.manage().window().maximize();
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
            driver.findElement(By.id("txtUsername")).clear();
            driver.findElement(By.id("txtUsername")).sendKeys("Admin");
            driver.findElement(By.id("txtPassword")).clear();
            driver.findElement(By.id("txtPassword")).sendKeys("admin123");
            driver.findElement(By.id("btnLogin")).click();
        System.out.println("successfully logged in");          
    }
     @AfterTest
     public void tearDown() {
         driver.quit();
}
}

В этом коде мы внедрили экземпляр Selenium Grid RemoteWebDriver в облаке лямбда-теста-

























 

Заканчиваем!

Чтобы быстро обобщить различия между Selenium Webdriver и Selenium RemoteWebDriver, давайте посмотрим в таблицу ниже-

WebDriver – это интерфейс, который можно импортировать из org.openqa.selenium. * посылка. Удаленный WebDriver – это класс, реализующий интерфейс WebDriver.
WebDriver – это объект, представляющий браузер, который можно использовать для управления различными браузерами. Удаленный WebDriver – это объект, который может управлять браузером в сетке путем настройки узла и концентратора.
get(),close(),quit() и т.д. – это методы, предоставляемые WebDriver. Удаленный WebDriver предоставляет специальные методы, такие как getSessionId(), setSessionId(), StartSession() и т.д.
WebDriver можно использовать для выполнения тестов на локальной машине. Удаленный WebDriver может выполнять выполнение тестов на удаленных компьютерах в различных браузерах и в нескольких средах.

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

К настоящему времени вы могли бы получить достаточные знания о внедрении Selenium RemoteWebDriver на вашем компьютере, а также в облаке LambdaTest Selenium Grid . Мы хотели бы услышать ваши отзывы об этой статье в поле для комментариев ниже. Вы также можете поделиться этой статьей со своими друзьями и коллегами и помочь им понять реализацию Selenium RemoteWebDriver для более быстрой автоматизации тестирования Selenium.

Счастливого тестирования!!!

Оригинал: “https://dev.to/shalinibaskaran12/selenium-remotewebdriver-what-is-it-how-is-it-different-from-webdriver-1gak”