Вы можете столкнуться с этим вопросом (где вы применили концепцию OOPS в Automation Framework) почти во всех интервью по Selenium. Изучите концепцию OOPS в Java, прежде чем идти дальше. Ранее мы опубликовали концепцию OOPS на Java с несколькими простыми для понимания примерами.
Также проверьте этот пост с объяснением структуры автоматизации Selenium. Я использую компоненты этого поста, чтобы объяснить текущий пост (т. е. применение концепций ООП в Automation Framework).
Концепции ООП в Selenium Automation Framework
В этом посте мы обсудим, как и где мы применили следующие концепции ООП в Automation Framework.
< /p>
#1. АБСТРАКЦИЯ
Абстракция — это методология сокрытия реализации внутренних деталей и демонстрации функциональности пользователям.
Давайте рассмотрим пример абстракции данных в Selenium Automation Framework.
В шаблоне проектирования Page Object Model мы пишем локаторы (например, id, name, xpath и т. д.) и методы в классе страниц. Мы используем эти локаторы в тестах, но не видим реализацию методов. Буквально скрываем реализации локаторов от тестов.
Подробнее об абстракции
В Java абстракция достигается интерфейсами и абстрактными классами. Используя интерфейсы, мы можем достичь 100% абстракции.
Давайте рассмотрим концепцию интерфейса ниже.
#2. ИНТЕРФЕЙС
Основной оператор, который мы все знаем в Selenium, это WebDriver driver = new FirefoxDriver();
< p>Подробное объяснение того, почему мы пишем WebDriver driver = new FirefoxDriver(); в Selenium.
WebDriver сам по себе является интерфейсом. Таким образом, на основании приведенного выше утверждения WebDriver driver = new FirefoxDriver();мы инициализируем браузер Firefox с помощью Selenium WebDriver. Это означает, что мы создаем ссылочную переменную (драйвер) интерфейса (WebDriver) и создаем Объект. Здесь WebDriver — это Interface, как упоминалось ранее, а FirefoxDriver — это класс.
Интерфейс в Java похож на класс, но и интерфейс, и класс — это два разных понятия. Интерфейс может иметь методы и переменные, как и класс, но методы, объявленные в интерфейсе, по умолчанию являются абстрактными. Мы можем добиться стопроцентной абстракции и множественного наследования в Java с помощью интерфейса.
Подробнее об интерфейсе читайте здесь.
#3. НАСЛЕДОВАНИЕ
Механизм в Java, с помощью которого один класс приобретает свойства (переменные экземпляра) и функции другого класса, называется наследованием.
Мы создаем базовый класс в Automation Framework для инициализации интерфейса WebDriver, ожиданий WebDriver, файлов свойств, файлов Excel и т. д. в базовом классе.
Мы расширяем базовый класс в других классах, таких как тесты и служебный класс.
Здесь мы расширяем один класс (базовый класс, такой как интерфейс WebDriver) в другой класс (например, тесты, служебный класс), известный как наследование.
Подробнее о наследовании читайте здесь.
№ 4. ПОЛИМОРФИЗМ
Полиморфизм позволяет нам выполнять задачу несколькими способами.
Сочетание перегрузки и переопределения известно как полиморфизм. Ниже мы увидим как перегрузку, так и переопределение.
Подробнее о полиморфизме читайте здесь.
#1. ПЕРЕГРУЗКА МЕТОДОВ
Мы используем Неявное ожидание в Selenium. Неявное ожидание является примером перегрузки. В неявном ожидании мы используем разные метки времени, такие как СЕКУНДЫ, МИНУТЫ, ЧАСЫ и т. д.,
Класс действия в TestNG также является примером перегрузки.
Класс утверждения в TestNG также является примером перегрузки.
Класс, имеющий несколько методов с одинаковыми именами, но разными параметрами, называется перегрузкой методов.
Подробнее о перегрузке см. здесь.
#2. ПЕРЕОПРЕДЕЛЕНИЕ МЕТОДОВ
Мы используем метод, который уже был реализован в другом классе, путем изменения его параметров. Чтобы понять это, вам нужно понять переопределение в Java.
Объявление метода в дочернем классе, который уже присутствует в родительском классе, называется переопределением метода. Примеры: получить и перейти.методов различных драйверов в Selenium.
Подробнее о переопределении с примерами читайте здесь
#5. ИНКАПСУЛЯЦИЯ
Все классы в фреймворке являются примером инкапсуляции. В классах POM мы объявляем элементы данных с помощью @FindBy, а инициализация элементов данных будет выполняться с помощью конструктора для использования их в методах.
Инкапсуляция — это механизм связывания кода и данных (переменных). вместе в единое целое.
Узнайте больше об инкапсуляции здесь
Другие концепции Selenium Automation Framework
Я хотел бы обсудить некоторые другие темы, которые мы используем в Automation Framework.
#1 . ВЕБ-ЭЛЕМЕНТ
Веб-элемент — это интерфейс, используемый для идентификации элементов на веб-странице.
#2. WEBDRIVER
WebDriver — это интерфейс, используемый для запуска различных браузеров, таких как Firefox, Chrome, Internet Explorer, Safari и т. д.,
#3. FIND BY
FindBy — это аннотация, используемая в шаблоне проектирования Page Object Model для идентификации элементов.
#4. НАЙТИ ЭЛЕМЕНТ
Найти элемент — это метод в POM для идентификации элементов на веб-странице.
Изучение Java — персонализированный пост для тестировщиков Selenium Automation
Вам также может понравиться:
- Вопросы для собеседования по Selenium
- Учебное пособие по Selenium
- Вопросы для собеседования по Java
- Учебное пособие по Java
- Вопросы для собеседования по TestNG
- Учебное пособие по TestNG
- Вопросы для собеседования по ручному тестированию
- Руководство по ручному тестированию
TAG: qa