Среда тестирования веб-автоматизации на основе Selenium+Python

контрольная работа

1. Что такое селен?

Selenium — это инструмент для автоматизированного тестирования на основе браузера, который представляет собой кросс-платформенное, кросс-браузерное комплексное решение для веб-автоматизации. Selenium в основном состоит из трех частей: Selenium IDE, Selenium WebDriver и Selenium Grid.

  • Selenium IDE: расширение Firefox, оно может воспроизводить запись и операцию записи (например, Java, Python и т. д.) в виде языков, производных от тестовых примеров.

  • Selenium WebDriver: для обеспечения необходимой автоматизации веб-API, в основном используется управление браузером, выбор элементов страницы и отладка. Разные браузеры требуют разных WebDriver.

  • Selenium Grid: дает возможность запускать тесты селена в разных браузерах на разных машинах.

В этой статье подробно рассказывается, как использовать Python в сочетании с библиотекой Selenium WebDriver для создания среды тестирования веб-автоматизации.

2. Платформа автоматизированного тестирования

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

Далее вводятся логические единицы каждого модуля:

1, с корпусом модуля управления

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

2. Контроллер автоматики

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

3. Модуль формирования отчетов

Он в основном отвечает за создание отчетов после выполнения варианта использования, как правило, в формате HTML, и информация в основном относится к выполнению варианта использования. Вы также можете настроить функцию отправки электронной почты.

4, модуль журнала

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

3. Проектирование и внедрение системы автоматизации

1. Анализ спроса

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

2. Дизайн и реализация

Управление страницей

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

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

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

Родительский класс страницы BaseClass.py

LoginClass наследуется от BaseClass и выполняет позиционирование элемента и реализацию операции входа в систему. Логин и пароль находятся в коде, и добавлена ​​операция установки логина и пароля.

Общие библиотечные модули

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

Common.py

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

Журнал в основном используется для записи шагов выполнения тестового примера и сгенерированной информации об ошибках.Различная информация имеет разные уровни журнала, такие как информация, предупреждение, критическое и отладка. Поскольку записи журнала, создаваемые каждым тестовым случаем, относительно малы, в тестовой среде используется только самый высокий уровень печати журнала, то есть уровень отладки, который также распечатывает информацию всех других уровней журнала. В конкретной реализации ссылка на библиотеку классов ведения журнала в стандартной библиотеке Python используется для более удобного управления выводом журнала.

репозиторий тестовых случаев

Репозиторий вариантов использования в основном используется для организации автоматизированных тестовых случаев. Каждый тестовый пример абстрагируется в отдельный класс и наследуется от класса unittest.TestCase. Библиотека unittest в Python обеспечивает богатую поддержку среды тестирования, включая методы setUp и tearDown тестовых случаев, которые можно переопределить в процессе реализации вариантов использования. Полагаясь на методы страницы и общедоступные функции, реализованные модулями управления страницами и общедоступной библиотеки, написание каждого сценария тестового примера будет очень четким и кратким.

Из этого тестового примера мы можем видеть

  • Программа установки определяет некоторую работу по созданию экземпляра перед выполнением тестового примера.
  • tearDown очищает и записывает файлы журнала после выполнения теста
  • Шаги испытаний, тестовые данные и тестовые контрольные точки очень четны и легко изменяют (например, имя пользователя и пароль)
  • Уровень журнала имеет только отладку, поэтому журнал — это только тот же метод журнала.

3. Используйте модуль выполнения прецедентов

Модуль выполнения в основном используется для управления пакетным выполнением сценариев тестовых случаев для формирования набора тестов. Выполнение тестового примера относится к подпроцессу в стандартной библиотеке Python для выполнения команды оболочки Nosetests, тем самым выполняя тестовый пример в заданном наборе тестовых случаев. Набор тестовых случаев представляет собой простой текстовый файл, а в процессе реализации используется файл .txt testcases.txt.

Скрипты тестовых случаев без значка "#" перед вариантом использования будут выполняться, а те, которые отмечены "#", будут игнорироваться, что позволяет легко контролировать выполнение набора тестов.Конечно, вы также можете создавать разные файлы для выполнения различных тестов.

4. Модули, которые нужно улучшить

Существующая среда тестирования уже может соответствовать требованиям автоматизации веб-объектов, но есть еще некоторые области, которые можно улучшить, например:

  • Некоторые случаи использования могут попробовать управлять данными.
  • Функция By селена инкапсулирована дважды для более эффективного поиска элементов.
  • Непрерывной интеграции нет.

V. Резюме

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

Автор: У Гуаньсян

Источник: Технологический институт CreditEase.