Начало работы с Selenium IDE

Подпишитесь на наш ТЕЛЕГРАМ КАНАЛ ПО АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ

В современной веб-разработке скорость и надежность сочетаются друг с другом: можно быстро выкатывать фичи, но без надлежащего тестирования баги могут проникнуть в прод и задеть реальных пользователей. Именно здесь пригодятся инструменты вроде Selenium IDE — они позволяют автоматизировать работу в браузере без единой строчки кода.

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

Содержание

Что такое Selenium?

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

Одно из главных преимуществ Selenium — его гибкость. Он совместим с несколькими языками программирования, такими как Java, Python, C#, Ruby и JavaScript, что позволяет командам писать тесты на любом удобном языке. Selenium одинаково хорошо работает как для локального тестирования, так и для запуска на разных браузерах и платформах, обеспечивая масштабируемость и стабильность автоматизированных тестов.

Что такое Selenium IDE?

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

Что такое Selenium IDE?

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

Принцип работы Selenium IDE

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

Как установить Selenium IDE

Selenium IDE представляет собой расширение для веб-браузеров Chrome и Firefox.

Инструкция по установке:

  1. Откройте браузер (Chrome или Firefox).
  2. Перейдите в магазин расширений вашего браузера.
  3. Найдите «Selenium IDE».
  4. Нажмите «Добавить в Chrome» или «Добавить в Firefox» и подтвердите установку.
Как установить Selenium IDE

Как пользоваться Selenium IDE

После установки вы можете сразу приступить к записи и запуску тестов.

Основные действия:

Как пользоваться Selenium IDE — нажмите на иконку
  1. Щелкните по значку Selenium IDE на панели браузера для запуска инструмента.
Создание проекта в Selenium IDE

2. Создайте новый проект и дайте ему понятное имя.

Укажите базовый URL тестируемого приложения в Selenium IDE

3. Укажите базовый URL тестируемого приложения.

4. Нажмите кнопку «Record» и выполните в браузере действия, которые хотите протестировать.

5. Нажмите «Stop», чтобы завершить запись.

6. Просмотрите записанные шаги и запустите тест, чтобы увидеть результаты.

Создание первого тест-кейса в Selenium IDE

Рассмотрим процесс создания простого теста:

  • Откройте Selenium IDE и создайте новый проект с именем «Login Test».
Создание тест-кейса в Selenium IDE
  • Установите базовый URL
установка базового URL в Selenium IDE
  • Нажмите «Record»
запись тест-кейса в Selenium IDE
  • Введите имя пользователя.
  • Введите пароль.
  • Нажмите кнопку «Login».
Login в Selenium IDE
  • Нажмите «Stop»
  • Просмотрите записанные шаги
просмотр записанных шагов в Selenium IDE

7 советов по работе с Selenium IDE

  • Правильно используйте утверждения (Assertions). Утверждения позволяют убедиться, что приложение ведет себя так, как ожидается. Такие команды, как assertText, assertElementPresent или assertTitle, помогают не просто выполнить тест, но и проверить корректность данных и интерфейса.
  • Организуйте тесты. Группируйте повторяющиеся тест-кейсы в наборы. Это помогает навести порядок, упростить управление большим числом тестов и запускать только нужные сценарии — без выполнения всей библиотеки.
  • Параметризируйте тесты. Сделайте свои скрипты более гибкими, передавая входные значения через переменные.Это позволяет запускать одну и ту же логику на разных наборах данных, реализуя data-driven подход без дублирования шагов.
  • Правильно используйте методы waitFor. Динамическая загрузка страниц приводит к нестабильной работе тестов. Правильно используйте методы waitFor, такие как waitForElementPresent или waitForText, чтобы убедиться, что элементы готовы к взаимодействию.
  • Правильно используйте функции отладки. Breakpoints и пошаговое выполнение позволяют понять, где именно и почему тест «падает». Это упрощает отладку и делает тесты надежнее.
  • Экспортируйте тесты в код. Вы можете экспортировать сценарии в Java, Python или JavaScript — это упростит интеграцию с CI/CD и профессиональными фреймворками. Это также сокращает разрыв между использованием IDE начального уровня и разработкой на Selenium.
  • Расширяйте возможности с помощью плагинов. Найдите и установите совместимые плагины для Selenium IDE. Они позволяют добавлять пользовательские команды, интеграции с другими инструментами и адаптировать IDE под ваши задачи.

Как превратить curl-запрос в тест-кейс с использованием Selenium

Selenium IDE отлично подходит для записи и воспроизведения действий пользователя, но в этой части предлагаем немного отойти от UI-тестирования и сосредоточиться на тестировании API. Существует множество инструментов и подходов, позволяющих быстро создавать тесты на основе curl-запросов — иногда даже без необходимости писать код вручную. Как правило, нужно выполнить три шага:

  1. Предоставить curl-команду с нужным запросом.
  2. Указать схему API (например, OpenAPI).
  3. Сделать приложение доступным для тестирования (например, через ngrok или аналогичные средства).

После этого можно автоматически сгенерировать тест или использовать данные curl-запроса для ручного написания тестового сценария.

Вот пример curl-запроса:

curl -X POST 'https://f468-122-166-253-157.ngrok-free.app/petclinic/api/owners' -H 'Content-Type: application/json' -d '{"firstName":"VisitOwner","lastName":"Test","address":"Visit Street 1","city":"VisitCity","telephone":"8383838383"}'

Теперь на его основе напишем простой API-тест. Пример ниже показывает, как можно проверить корректность ответа от сервера.

const axios = require('axios');
const assert = require('assert');
// The URL of the API
const url = 'https://f468-122-166-253-157.ngrok-free.app/petclinic/api/owners';
// The JSON data to send in the request
const requestBody = {
  firstName: "VisitOwner",
  lastName: "Test",
  address: "Visit Street 1",
  city: "VisitCity",
  telephone: "8383838383"
};
// Function to make the POST request and validate the response
async function testApiPostRequest() {
  try {
    // Step 1: Send the POST request using Axios
    const response = await axios.post(url, requestBody, {
      headers: {
        'Content-Type': 'application/json',
      },
    });
    // Step 2: Check if the response status is 201 (created)
    assert.strictEqual(response.status, 201, 'Response status is not 201');
    // Step 3: Validate the response body
    const responseBody = response.data;
    assert.strictEqual(responseBody.firstName, "VisitOwner", 'First name mismatch');
    assert.strictEqual(responseBody.lastName, "Test", 'Last name mismatch');
    assert.strictEqual(responseBody.address, "Visit Street 1", 'Address mismatch');
    assert.strictEqual(responseBody.city, "VisitCity", 'City mismatch');
    assert.strictEqual(responseBody.telephone, "8383838383", 'Telephone mismatch');
    assert.ok(responseBody.id, 'Owner ID is missing');
    console.log('API test passed!');
  } catch (error) {
    console.error('API test failed:', error);
  }
}
// Run the API test
testApiPostRequest();

Основные функции Selenium IDE

Запись и воспроизведение действий

Selenium IDE позволяет записывать действия, выполняемые в веб-приложении, и воспроизводить их в виде тестов. Тестовые скрипты легко создаются без написания кода, что позволяет автоматизировать тестирование даже тем, кто не владеет программированием.

Кросс-браузерное тестирование

Большинство распространенных браузеров, таких как Chrome и Firefox, поддерживаются Selenium IDE, что позволяет тестировать веб-приложение в разных средах и заранее выявлять ошибки, зависящие от браузера.

Управляющие конструкции (Control Flow)

Selenium IDE поддерживает конструкции управления потоком — if-else, while, do-while. Это позволяет создавать более гибкие и адаптивные тесты, поведение которых может изменяться в зависимости от условий во время выполнения.

Инструменты отладки

Selenium IDE поддерживает такие функции отладки, как breakpoints и пошаговое выполнение действий. Эти функции помогают находить и устранять ошибки в логике тестов, отслеживая выполнение действий по шагам.

Плагины (расширения)

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

Параметры экспорта

Тестовые сценарии можно экспортировать в другие языки программирования, такие как Java, Python или JavaScript. Это облегчает масштабирование и интеграцию с более сложными проектами на базе Selenium.

Преимущества использования Selenium IDE

Простой и удобный интерфейс

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

Быстрое создание теста

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

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

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

Возможности интеграции

Несмотря на простоту, Selenium IDE можно интегрировать с более сложными инструментами, например, для тестирования API на стороне сервера. Это означает, что можно выстраивать сквозные цепочки тестирования как фронтенда, так и бэкенда.

Что такое Selenese?

Selenese — это командный язык Selenium IDE, используемый для автоматизации взаимодействия с браузером. Он подобен скрипту, который указывает браузеру, что нужно сделать: нажать кнопку, ввести текст в поле, выбрать значение из выпадающего списка или проверить наличие определенного контента на странице. Наиболее часто используемые команды: click, type, open, verifyText и другие.

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

Примеры команд Selenese

Ниже приведены два простых примера команд, введенных вручную:

Пример 1: Открытие веб-страницы.

seleneseCopyEditCommand: open  
Target: https://example.com  
Value:

Что делает: открывает главную страницу example.com.

Пример 2: Ввод текста в поисковую строку.

seleneseCopyEditCommand: type  
Target: name=q  
Value: Selenium IDE

Что делает: вводит текст «Selenium IDE» в поисковую строку (например, как у Google).

Ограничения Selenium IDE

Хотя Selenium IDE является отличным инструментом для начала автоматизации тестирования, у него есть некоторые ограничения, о которых следует упомянуть:

Ограниченная поддержка браузеров: Selenium IDE в настоящее время доступен только в виде расширения для Chrome и Firefox. Если нужно провести тестирование в браузерах вроде Safari и Edge, либо на мобильных платформах, стоит обратить внимание на другие инструменты, например, Selenium WebDriver.

Отсутствие поддержки сложной логики: Так как Selenium IDE не требует написания кода, он не поддерживает условные конструкции, циклы или параметризованное тестирование. Для таких задач потребуется использовать Selenium WebDriver вместе с языком программирования.

Тесты, которые легко ломаются: Тесты, созданные в Selenium IDE, легко ломаются при малейших изменениях в интерфейсе — например, при переименовании или перемещении кнопки. Сопровождение таких тестов более трудоемкое и сложное.

Ограниченные возможности интеграции: Selenium IDE не поддерживает интеграцию с CI/CD-пайплайнами, инструментами отчетности и другими системами тестирования. Поэтому он не подходит для масштабируемой автоматизации в рамках DevOps-процессов.

Такие ограничения делают Selenium IDE подходящим для небольших проектов, прототипов или быстрого тестирования, но не для комплексного тестирования на уровне корпоративных систем.

Заключение

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

Комбинируя Selenium IDE с другими инструментами, и переходя в будущем на более продвинутые фреймворки вроде Selenium WebDriver, тестировщики могут построить гибкую и эффективную систему автоматизации. Selenium IDE — это промежуточный этап на пути к профессиональной веб-автоматизации, будь то проверка простой формы входа в систему или создание основы для CI/CD-пайплайна.

Часто задаваемые вопросы

1. Совместим ли Selenium IDE с тестированием мобильных приложений?

Нет, Selenium IDE совместима только с десктопными веб-браузерами, такими как Chrome и Firefox. Для тестирования мобильных приложений можно использовать такие инструменты, как Appium, родственный Selenium.

2. Что такое Selenium WebDriver?

Selenium WebDriver — это инструмент, позволяющий писать код для управления такими браузерами, как Chrome, Firefox или Edge. В отличие от Selenium IDE, ориентированного на запись и воспроизведение действий, WebDriver предоставляет полный контроль над браузером и работает с такими языками программирования, как Java, Python и другими.

3. Что делает Selenium Grid?

Selenium Grid позволяет запускать тесты на нескольких машинах и в нескольких браузерах одновременно. Это отличный способ ускорить работу или провести тестирование в разных средах. Настраивается центральный хаб и подключаются удалённые узлы (nodes).

4. Что произойдет, если интерфейс веб-приложения изменится после записи теста в Selenium IDE?

Если изменяется структура пользовательского интерфейса или идентификаторы элементов, записанные в тесте Selenium IDE, тесты перестают работать. Причина в том, что в записанных командах используются локаторы элементов. Чтобы избежать ошибок, используйте надежные локаторы и периодически обновляйте тесты, чтобы они могли учитывать изменения пользовательского интерфейса.

5. Подходит ли Selenium IDE для использования в CI/CD-пайплайнах?

Selenium IDE изначально не предназначен для использования в CI/CD-процессах. Тем не менее, тесты, созданные в Selenium IDE, можно экспортировать в код и интегрировать в пайплайн с помощью Jenkins, GitHub Actions или GitLab CI.

Перевод статьи «Getting started with Selenium IDE».

🔥 Какой была ваша первая зарплата в QA и как вы искали первую работу? 

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

Читать в телеграм

2 комментария к “Начало работы с Selenium IDE”

  1. Пингбэк: Почему я делаю ставку на LLM для UI тестирования

  2. Пингбэк: Автоматизированное интеграционное тестирование

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

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