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

framework
python
Теги: #<Tag:0x00007fedb9429bf0> #<Tag:0x00007fedb9429ab0>

(Andrey Kim) #1

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

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

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

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

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

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


Обертки вокруг Selenium [Python]
Дайджест полезных ссылок для тестировщиков-автоматизаторов #020
(Mykhailo Poliarush) #2

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

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

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

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

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


Аналог FitNesse для Python
Укольчик webdriver-а в тест (Inject webdriver in a test)
Обертки вокруг Selenium [Python]
Что у Вас получилось с Selenium?
Какой самый распространенный стек для автоматизированного тестирования на python?
(Вячеслав Артемчук) #3

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


(Сергей Блохин) #4

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


(Mykhailo Poliarush) #5

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


(Вячеслав Артемчук) #6

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


(Mykhailo Poliarush) #7

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


(Вячеслав Артемчук) #8

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

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


(Andrey Kim) #9

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

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

(Romanchuk Katerina) #10

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


(Artem Iljin) #11

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


(Mykhailo Poliarush) #12

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


(Andrey Kim) #13

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


(Mykhailo Poliarush) #14

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


(Mykhailo Poliarush) #15

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


(Ayia) #16

Selenide в мире python = Elementium: https://github.com/actmd/elementium


(Iryna Onyshchuk) #17

Есть еще Selene - такой себе Selenide на Python от @Ayia https://github.com/yashaka/selene


(Андрей Браун) #18

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