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

Объектная модель страницы

Selenium действует на webelements с помощью своих свойств, таких как ID, имя, XPath и т. д. В отличие от QTP, который имеет встроенный репозиторий объектов (OR), Selenium не имеет встроенных OR.

Следовательно, нам нужно построить OR, который также должен быть доступен и доступен по требованию. Объектная модель страницы (POM) является популярным шаблоном проектирования для создания репозитория объектов, в котором каждый из этих свойств webelements создается с использованием файла класса.

Преимущества:

  • POM - это реализация, в которой тестовые объекты и функции отделены друг от друга, тем самым сохраняя код в чистоте.
  • Объекты не зависят от тестовых сценариев. К объекту можно получить доступ один или несколько тестовых скриптов, поэтому POM помогает нам создавать объекты один раз и использовать их несколько раз.
  • Поскольку объекты создаются один раз, их легко получить доступ, а также обновить определенное свойство объекта.

Блок-схема POM

Объекты создаются для каждой из страниц, и методы разработаны исключительно для доступа к этим объектам. Давайте используем http://calculator.net для понимания того же.

С ним связаны различные калькуляторы, и каждый из этих объектов на определенной странице создается в отдельном файле класса как статические методы, и к ним все доступны через файл классов «тесты», в котором статический метод будет обращаться к объектам.

Параметрирование с использованием Excel

При разработке теста параметрирование тестов неизбежно. Мы будем использовать Apache POI - Excel JAR для достижения того же. Это помогает нам читать и писать в Excel.

  • Шаг 1 - Перейдите к URL-адресу https://poi.apache.org/download.html и загрузите ZIP-формат.
  • Шаг 2 - Нажмите ссылку Зеркала, чтобы загрузить JAR.
  • Шаг 3 - Разархивируйте содержимое в папку.
  • Шаг 4 - Распакованное содержимое будет отображаться, как показано ниже.
  • Шаг 5 - Теперь создайте новый проект и добавьте все «Внешние JAR» в папку «poi-3.10.FINAL».
  • Шаг 6 - Теперь добавьте все «внешние JAR» в папку «ooxml-lib».
  • Шаг 7 - Теперь добавьте все «Внешние JAR» в папку «lib».
  • Шаг 8 - Добавленный JAR отображается, как показано ниже.
  • Шаг 9 - Проводник пакетов отображается, как показано ниже. Кроме того, добавьте связанные с WebDriver JAR

Log4j Logging

Log4j - это структура ведения журнала аудита, которая дает информацию о том, что произошло во время выполнения. Он предлагает следующие преимущества:

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

Компоненты Log4j:

1. Экземпляр класса Logger.

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

  • ошибка
  • предупреждать
  • Информация
  • отлаживать
  • журнал

Обработка исключений

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

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

Фактический код должен быть помещен в блок try, а действие за исключением должно быть помещено в блок catch. Обратите внимание, что блок «finally» выполняется независимо от того, выбрал ли сценарий исключение или НЕ.

try {
   //Perform Action
} catch(ExceptionType1 exp1) {
   //Catch block 1
}  catch(ExceptionType2 exp2) {
   //Catch block 2
} catch(ExceptionType3 exp3) {
   //Catch block 3 
} finally {
   //The finally block always executes.
}

Тестирование нескольких браузеров

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

Прежде всего, убедитесь, что у вас есть соответствующие драйверы. Пожалуйста, обратитесь к главе «Селеновая сетка» для загрузки драйверов IE и Chrome.

Capture Screenshots

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

Захват видео

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

Для выполнения этой операции мы будем использовать библиотеку Monte Media.

  • Шаг 1 - Перейдите к URL-адресу https://www.randelshofer.ch/monte/index.html и загрузите JAR экрана.
  • Шаг 2 - После загрузки добавьте JAR-файл в Библиотеки текущего проекта.
  • Шаг 3 - Мы будем использовать пакет AWT Java для инициализации конфигурации графики.
  • Шаг 4 - Создается экземпляр ScreenRecorder, который принимает следующие параметры.

GraphicsConfiguration

Предоставляет информацию о экране дисплея, таком как размер и разрешение.

Формат видео и сжатия

Формат вывода (AVI) фильма с количеством кадров / сек.

Цвет курсора мыши и частота обновления

Определяет цвет курсора мыши и частоту обновления.

Аудиоформат

Если «NULL», аудио не будет записано.