Разница между django-webtest и селеном

Я читал о тестировании в джанго. Одна вещь, которая была рекомендована, – использование django-webtest для функционального тестирования. Я нашел здесь достойную статью, в которой рассказывается, как перейти к функциональному тестированию в селене с помощью python. Но люди также рекомендовали расширять djagno-webtest для интернет-тестировщика Ian Bicking для тестирования форм в django. Как тестирование с веб-тестированием и тестирование с селеном различаются в контексте форм джанго?

Таким образом, с точки зрения функционального тестирования:

Как django-webtest и селен идут бок о бок?

Должны ли мы иметь их обоих или кого-нибудь?

2 Solutions collect form web for “Разница между django-webtest и селеном”

Важно знать о Selenium, так это то, что он в первую очередь построен как серверно-агностическая среда тестирования. Не имеет значения, какая структура или серверная реализация используется для создания front-end, если она ведет себя так, как ожидалось. Кроме того, в то время как вы можете (и, когда это возможно, вам, вероятно, следует ) писать тесты вручную в Selenium, многие тесты записывают макросы кого-то, проходящего через движения, которые затем превращаются в код автоматически.

С другой стороны, django-webtest построен специально для работы с сайтами Django. Это фактически расширение, специфичное для Django для WebTest, которое не является Django-only, а WSGI-only (и, следовательно, Python-only). Из-за этого он может взаимодействовать с приложением с более высоким уровнем осведомленности о том, как все работает на сервере. Это может ускорить выполнение тестов, а также упростить запись более подробных и подробных тестов. Кроме того, в отличие от Selenium, ваши тесты не могут быть автоматически записаны в виде записанных макросов.

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

Главное отличие заключается в том, что селен запускает фактический браузер, а WebTest – к WSGI. Это приводит к следующим различиям:

  • Вы не можете тестировать JS-код с помощью WebTest, так как запускать его нечем.
  • WebTest намного быстрее, так как он перехватывает WSGI, это также означает меньший объем памяти
  • WebTest не требует фактического запуска сервера на порту, поэтому его немного легче
  • WebTest не проверяет различные проблемы, которые возникают с фактическими браузерами, например, определенные ошибки в браузере (cough .. internet explorer .. cough ..)

Итог: PREFER для использования WebTest, если вы НЕ ДОЛЖНЫ использовать Selenium для вещей, которые не могут быть протестированы с помощью WebTest.

  • Неисправность нажатием кнопки для следующей страницы
  • Python Selenium: найти атрибуты объекта с помощью xpath
  • Как установить отображение стиля элемента html в тесте на селен?
  • Использование Firefox с Selenium webdriver не записывает историю
  • дождитесь обновления страницы
  • Чтение скрытого значения в div с использованием Selenium Python binding
  • Selenium chromedriver 2.25 TimeoutException не может определить статус загрузки
  • Как очистить содержимое, отображаемое во всплывающем окне с помощью javascript: ссылки с использованием scrapy
  • Селен в Питоне
  • Селен подождать, пока не появится какой-либо элемент с заданным классом
  • Как включить chromedriver с pyinstaller?
  •  
    Interesting Posts for Van-Lav

    Почему 3 << 1 == 6 в python?

    dll загружает ошибки в исполняемом файле python из pywin32

    Можно ли использовать Angular с движком шаблонов Jinja2?

    Возвращает кортеж с наименьшим значением y из списка кортежей

    Установка пакета Ephem в Python 3

    Назовите эту конструкцию языка python / ruby ​​(используя значения массива для удовлетворения функциональных параметров)

    Неизменность в Python

    Механизм приложения Google, максимальное количество статических файлов?

    Как я могу определить имена повторяющихся методов в классе python?

    Python: поиск последнего индекса элемента min?

    Модуль импорта модулей не работает

    Почему peewee, включая столбец «id» в запросе select mysql?

    Почему словари не изменяются после удаления?

    Объект «Список» не имеет атрибута «Значения»

    Программирование Pygame, чтобы я мог нажимать сразу несколько клавиш, чтобы заставить моего персонажа двигаться по диагонали

    Python - лучший язык программирования в мире.