Подтвердить что ты не робот

Лучшие практики автоматизации веб-тестирования Selenium

Я хотел бы знать ваши комментарии о лучших методах разработки веб-тестов.

  • Я в основном читал пару блогов и, наконец, убедился в подходе Дэвида Бернса, приведенном в книге - "Selenium 1.0 Testing Tools: Руководство для начинающих" в глава 7.

  • Сохранение всех методов, верификаторы конкретной страницы в отдельном файле класса делают ее уточненной, поддерживаемой.

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

  • Было бы хорошо, если бы мы сохранили все шаги в таблице базы данных, извлекли и выполнили шаги? В этом случае, если какой-либо из тестов не выполнен, это было бы обновлено в таблицах, и мы можем выборочно запускать только неудавшиеся тесты.

  • Кроме того, отчетность может быть выполнена путем выборочного запроса таблиц, и данные могут быть очищены из этих таблиц через задание. Сохранение результатов/результатов синтаксического анализа из тестовых выходных файлов также прекрасное.

  • Если этот вопрос уже ответил в соответствующих сообщениях, напишите ссылки. Я проверил несколько сообщений, прежде чем публиковать этот вопрос.

  • На веб-сайте взаимодействие пользователя с веб-сайтом управляется событиями. Способ взаимодействия пользователя с сайтом может быть несколькими комбинациями A- > B- > C или A- > C- > B. Выполнение всей возможной комбинации обеспечивает максимальный охват. Автоматизация тестирования на основе моделей, охватывающая все возможные состояния.

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

  • Поделитесь своими рекомендациями/предложениями по вышеуказанным вопросам. Для всех вышеперечисленных реализаций Dataproviders, передавая данные в XML, мы можем использовать в отношении управления тестовыми данными.

  • Какой конструктивный подход мы должны рассмотреть для разработки набора автоматизации тестирования на основе моделей.

  • Кто-нибудь пробовал использовать фреймворк http://www.w3qa.eu/framework.html. Любые комментарии/отзывы по одному и тому же, пожалуйста, предоставьте

4b9b3361

Ответ 1

Дэвид Бернс - умный парень. Его книга является хорошей отправной точкой для всех, кто хочет изучить основы Selenium и автоматизации тестирования. Конечно, возьмите его (и мою, и все остальные) советы с солью. Есть много экспертов и много противоположных мнений. Вам нужно будет выяснить, что лучше всего подходит для вас.

Да. Это определенно хорошая идея "сохранить все методы, верификаторы конкретной страницы в отдельном классе". Вы можете перефразировать это как "разделение действий и намерений" или "программирование на языке домена". В любом случае, вы хотите избежать написания тестов на низкоуровневых селенцах. Один из способов сделать это - использовать шаблон Page Object. Многие из авторов Selenium и других экспертов селена выступают за использование страниц. Это хороший способ сделать тестовый код более надежным, читаемым и многоразовым.

Знание других шаблонов дизайна также полезно и использование их в тестовой среде, вероятно, является хорошей идеей. К сожалению, единого "лучшего" подхода нет. Вероятно, вам придется использовать несколько шаблонов и сочетание подходов для достижения хорошего тестового кода. Я бы рекомендовал начинать с малого, писать несколько тестов, замечая запахи кода и рефакторинг. Ваша тестовая структура будет расти. Вам не нужно проектировать все это впереди. Быть подвижным. Используйте итеративный, инкрементный подход. (Не используйте Selenium IDE)

youtube - Саймон Стюарт Говорит о автоматизированных тестовых шаблонах и селене

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

youtube TestNG

oh man... Я не могу опубликовать больше двух ссылок прямо сейчас... О, хорошо... Я рекомендую искать видео GTAC на YouTube, видео с saucelabs на viddler, блог Саймона Стюарта, документацию TestNG, примеры объектов страницы и статьи Бретта Петтишхора назвали "Семь шагов для успеха автоматизации".

Удачи!

Ответ 2

http://mestachs.wordpress.com/2012/08/13/selenium-best-practices/

  • Использовать шаблон PageObjects
  • Свободно с
    • return this, varargs, generics,
    • повторное использование вашей модели и jodatime
  • Будьте надежными и портативными
    • Предпочтительный порядок выбора: id > name > css > xpath
    • Избегайте использования Thread.sleep Wait или FluentWait
    • Использовать относительные URL-адреса
    • Не полагайтесь на конкретную реализацию драйвера.
    • Создайте свой набор данных
  • Знай свой новый инструмент
    • Сохраняйте актуальность (версии и шаблон использования)
    • Устранение неполадок
      • jre 1.6
      • IE (зум, режим защищенного режима)
      • Начальная страница Firefox/firebug
    • Как работать с компонентами пользовательского интерфейса, такими как... fileupload, datepicker, ajaxtables,...
    • Обнаружение, когда селен не является хорошим инструментом для работы.
    • Не бойтесь взломать селен

Ответ 3

Я написал фреймворки тестирования кода в пяти разных приложениях (WinRunner, LoadRunner, QuickTest Professional, TestComplete, Selenium WebDriver), и я нашел для меня несколько вещей:

  • Если набор тестов предназначен для быстрого и среднего, вам не нужна фреймворк. Мои первые тесты были в основном бесплатными.
  • Когда вы попадаете в более сложное приложение, репозитории объектов (для приложений GUI) и Page Objects (для Selenium WebDriver) делают работу более эффективной.
  • Я, как правило, трачу свое время на работу с инструментами, помогающими процессу тестирования и сглаживанию краев инструмента.

Я использую TestNG, WebDriver и Spring для создания существующей тестовой среды. Я вытягиваю сегменты этой структуры в свой собственный набор библиотек OSS, чтобы другие могли повторно использовать их. Прямо сейчас я могу вводить типы пользовательских элементов, и у меня есть несколько базовых типов, добавленных для работы с формами. Это очень грубо, и это не рамка, которая стоит одна; вы должны интегрировать его в свои собственные рамки, но я стараюсь и сохраняю зависимости до минимума.

Ответ 4

Эй.
Если вы действительно хотите разделить логику, в конце концов вы хотите создать основу автоматизации тестирования для своего приложения, а затем написать модульные тесты, которые будут использовать этот новый api, а не просто писать модульные тесты. Большинство программистов могут сказать, что больше не являются модульными тестами... и, возможно, нет. Но это не важно. Вы все еще можете сделать это красиво. Ниже приведены ссылки, которые должны вас поймать. Хотя они говорят о создании функциональных тестов, которые работают на всем приложении (уровень gui), я думаю, что тот же подход вы можете применить для достижения своей цели. Я кратко расскажу, как писать трехслойные тесты, поэтому у вас будет разделение логики от реализации.

Ответ 5

Мои друзья, если вы проводите тестирование автоматизации, убедитесь в следующем:

  • Четко напишите тестовый пример.
  • Убедитесь, что у вас есть опыт работы в JUnit.
  • Убедитесь, что вы знаете требования к бизнесу/функции вашего проекта и тестовой среды.

Спасибо.