Основы Selenium

Selenium – это инструмент с открытым исходным кодом для автоматизации тестирования веб-приложений. С его помощью можно тестировать приложения в разных браузерах, таких как Chrome, Firefox и Safari, а также в различных операционных системах, например, Windows, Mac и Linux.

Для управления тест-кейсами и генерации отчетов тестовые скрипты Selenium можно использовать с такими инструментами, как TestNG и JUnit. Selenium также можно интегрировать с Maven и Jenkins.

Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.

Почему именно Selenium?

Давайте обсудим основные преимущества Selenium.

Открытый исходный код

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

Поддержка нескольких языков программирования

Самые популярные языки для написания автоматизированных тестов с помощью Selenium — это C#, Java, PHP, Perl, Python и Ruby. Компаниям не нужно тратить время и усилия на обучение сотрудников новому языку, так как при использовании Selenium тестировщики могут продолжать работать с теми языками, которые уже освоили.

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

Кроссбраузерность

В современном мире наиболее распространенными браузерами являются Chrome, Firefox, Safari, Internet Explorer, Opera и Edge. Все они совместимы с Selenium, так как он поддерживает соответствующие драйверы. Это означает, что одни и те же тестовые скрипты можно запускать во всех перечисленных браузерах, и они будут работать.

Кроссплатформенность

Еще одно преимущество Selenium в том, что нам не нужно беспокоиться о конфигурации системы. Тестовые скрипты можно создавать и запускать в любой операционной системе. Например, мы можем написать тестовый скрипт на Selenium в Windows, и его можно будет запустить в Mac или Linux. Благодаря этому тестировщики могут более эффективно писать тестовые скрипты.

Доступность фреймворков

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

Тестовых фреймворков довольно много. Есть гибридные, data-driven и keyword-driven фреймворки.

Компоненты Selenium

Компоненты Selenium: Selenium IDE, Selenium RC, Selenium WebDriver, Selenium Grid.
Компоненты Selenium

Selenium IDE

IDE расшифровывается как “Integrated Development Environment” – “интегрированная среда разработки”. Разработчики тест-кейсов используют Selenium IDE в первую очередь как инструмент записи и запуска тест-кейсов. Этот простой инструмент могут использовать даже новички, только начинающие создавать автоматизированные тесты для своих веб-приложений.

Selenium RC или Selenium Remote Controller

Этот инструмент позволяет вам создавать тесты на любом языке программирования. Selenium RC состоит из двух основных частей: серверной и клиентской библиотек. Его архитектура сложная, и у него есть свои ограничения.

Selenium WebDriver

Улучшенная версия Selenium RC называется Selenium WebDriver. Она была выпущена на рынок, чтобы обойти ограничения Selenium RC. Несмотря на то, что WebDriver является более совершенной версией RC, у него совершенно другая архитектура. Как и Selenium RC, Selenium WebDriver поддерживает несколько языков программирования для увеличения гибкости.

Selenium Grid

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

Архитектура Selenium WebDriver

Схема компонентов Selenium WebDriver

Клиентская библиотека Selenium – это основная структура WebDriver. Она поддерживает разные языки программирования, такие как C#, Python, Ruby и Java. Тестировщики могут выбрать тот язык, который им удобен для написания тестовых сценариев с использованием Selenium.

JSON Wire Protocol – протокол, который обеспечивает всю коммуникацию между браузером и тестовым кодом. Это сердце Selenium. Протокол JSON Wire определяет способ обмена данными между браузером и тестовым кодом в Selenium, используя RESTful API и JSON-формат по протоколу HTTP.

Драйвер браузера – это инструмент, который взаимодействует с вашим браузером и выполняет команды, которые вы отправляете ему через свой код в формате JSON. После того как браузер выполняет эти команды, драйвер получает ответы от него и отправляет обратно вашему коду для дальнейшей обработки.

Следующий блок кода демонстрирует простой пример использования WebDriver:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class SeleniumTest {
    public static void main (String[]args){

              // Set the path to the ChromeDriver executable
              System.setProperty("webdriver.chrome.driver","C:\\Users\\HP\\Downloads\\chromedriver-win64\\chromedriver.exe");

              // Initialize the ChromeDriver instance
              WebDriver driver = new ChromeDriver();

              // Open the Web page
              driver.get("https://www.daraz.lk/");

              // Close the Browser
              driver.close();
    }

}

Как запустить тесты в браузерах Firefox и Edge с помощью драйвера Gecko:

// Сделать путь к GeckoDriver исполняемым
System.setProperty("webdriver.gecko.driver","C:\\Users\\HP\\Downloads\\geckodriver-v0.30.0-win64\\geckodriver.exe");
// Инициализировать экземпляр FirefoxDriver
WebDriver driver = new FirefoxDriver();

Перевод статьи «The Basics of Selenium: An Introduction for Beginners».

1 комментарий к “Основы Selenium”

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *