Выбор фреймворка для тестирования на python

Всем добрый день.

Недавно начал автоматизировать тестирование проекта. В качестве языка выбран python. Сейчас стоит задача определиться с выбором фреймворка для тестирования.

Гуглил на этот счет и пока что выбрал nose, robot framework.
Но особых притязаний к какому-либо еще нет. Может есть другие хорошие варианты?

Подскажите опытные автоматизаторы, какой фреймворк подобрать.
Какой фреймворк быстрее по написанию тестов, какой с архитектурой по проще.

Немного о проекте.
Проект имеет веб фронтэнд, который будет тестироваться с webdriver. Также есть mysql бд, которая также будет участвовать в тест-кейсах. И будут использоваться bash команды для проверки директорий, логов, авторизаций и подобных команд юзера. Все это планировалось построить через unittest архитектуру. Но пока точного решения не принято.

Посоветуйте пожалуйста.

Ну выбор фреймворка зависит еще от многих факторов

  • знания и опыт
  • применение в команде
  • поддержка программистов

Но лучше искать более высокого уровня фреймворки смотреть, например

А еще стоит упомянуть BDD инструменты:

некоторые уже обсуждались в этой теме

2 лайка

Есть опыт использования splinter + lettuce? Или splinter + behave?

[quote=“akim, post:1, topic:3476”]
И будут использоваться bash команды для проверки директорий, логов, авторизаций и подобных команд юзера.
[/quote]Старайтесь не плодить сущности. Все действия «баша» можно реализовать на Python.
Проще поддерживать (ваш напарник может знать Python и не знать Bash, например).

1 лайк

А есть конкретные вопросы? Тогда описывайте в подробностях в новой теме и будем обсуждать.

Выбирал между этими двумя BDD инструментами, остановился на Lettuce. Конкретные вопросы скоро появятся :smile:

А можно вкратце какие критерии для выбора между этими тулами были и почему именно остановились на lettuce?

Извиняюсь за задержку с ответом!

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

У нас кончилось тем что мы написали собственный велосипед над webdriver-ом основываясь на unittest. Отказались от BDD потому что:

  1. Не факт что не возникнут “костыли”, которые не решатся синтаксисом этого самого BDD фреймворка.
  2. Чтобы использовать его для системы тестирования нужно писать на определенном синтаксисе, а значит для новых тестеров будет порог вхождения не только языка, но и этого фреймворка. А на самописном получается что только языка в моем случае python/
1 лайк

А мы используем nosetests, он представляет собой расширение над стандартными unittest и облегчает написание тестов. Интересно, а какой функциональности вам не хватило, расскажите в кратце, что своё допиливали?

Тестируем REST, за основу взяли nose, не хватило функциональности Java-вского TestNG, поэтому попробовали Proboscis. Теперь имеем всю функциональность Nose (возможность использовать плагины, формировать отчёты) плюс немного TestNG-шных плюшек в виде группировки тестов, тестов с зависимостями, построения карты тестовой сюиты и т.д.

А мне еще интересно, какие плюсы и минусы вы нашли при сравнение двух самых популярных xunit фреймворков для python py.test vs nosetest?

Думали о nosetests, но оказалось что простая надстройка над тестраннером unittest позволит нам покрыть весь функционал. Функциональности особо индивидуальной не преследовали, просто сделали все тесты в определенном порядке и в уровнях абстракции. Отдельные тесты с бэкендом и отдельные с фронтендом, а также совместные. Сейчас все это дело переезжает на Jenkins и теперь понадобились отчеты xml и скриншоты для падающих тестов. Поэтому еще используем xmlrunner который генерит отчеты для Jenkins. А скриншоты webdriver сам отлично фоткает.

Хотел бы еще добавить пару интересных проектов, которые можно посмотреть:

Сейчас набиваю список полезных инструментов и фреймворков здесь

Selenide в мире python = Elementium: GitHub - actmd/elementium: jQuery-style syntactic sugar for highly reliable automated browser testing in Python

1 лайк

Есть еще Selene - такой себе Selenide на Python от @Ayia GitHub - yashaka/selene: User-oriented Web UI browser tests in Python

Мы им пользуемся на проекте, ничего так помогает быстрее писать тесты))