Помогитe с выбором фрэймворка для тестирования мобильных приложений или как найти обертку над appium

Здравствуйте, интересует меня фрэймворк для тестирования, тесты выполнять будет Appium,
т.к.

  1. он тестирует приложение, которое отправляется на аппстор(не требует встраивания или пересобирания билда)
  2. работает с iOS и андроид
  3. тесты можно запускать на дженкинсе.

Также требованием к фреймворку является репорт тул(возможность создания хытымыэль отчета)
Возможность делать скриншоты до степа и после(и встраивать их в репорт)
Также интересует возможность использования этого фреймворка и для веб проектов.

Что-то я немного не понял вашего вопроса. Т.е. вы выбрали уже Appium и ищите какой фреймворк обертку на Appium для того чтобы упростить разработку тестов? Я верно вас понял?

Ага, да)
А, забыл дописать.
Для заказчиков автотестов важным требованием является написание тестов на языке, Gherkins подобному, чтобы они могли понимать и ревьюить тесты.
Не хотелось бы, чтобы ваше мнение было предвзятым, но всё-таки оглашу моих 2 кандидата:

  1. robotframework
  2. lettuce

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

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

  1. robotframework
  2. lettuce
  3. behave

В случае с robotframework есть уже реализованная библиотека, которую можно использовать GitHub - serhatbolsu/robotframework-appiumlibrary: AppiumLibrary is an appium testing library for RobotFramework

В случае с lettuce или behave, надо будет делать некоторые обертки над appium, чтобы сделать более переиспользуемым. Готовых врапперов для GitHub - appium/python-client: Python language bindings for Appium я не видел, поищите, может быть уже кто-то что-то и писал. Но вряд ли. Так что скорее всего придется писать самостоятельно. Lettuce более популярный, хотя как по мне то behave более функциональный и содержит меньше дефектов.

Если используете nosetests или py.test то можно рассширить их через плагины

  1. nose + pinocchio · PyPI
  2. pytest + pytest-bdd · PyPI

Миша, а Вы имели счастье пользоваться robotframework или lettuce?
Если уж выбирать между этими двумя гигантами >_<, то кого из них вы предпочли бы и почему?

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

Могу абстрактно сказать и тот и другой инструмент хорош, но они несколько разные по своей сути. Потому как robotframework больше keyword driven инструмент с поддержкой bdd, а lettuce это чисто bdd инструмент.

Robotframework имеет значительно большую коммьюнити и различные библиотеки, встроенный хороший репортинг, и при наличии библиотек можно меньше программировать и более удобно составлять тесты с помощью уже готово IDE. RF можно легко интегрировать с другими системами.

Но в lettuce нужно больше программировать (что дает больше гибкости), тут конечно придется делать больше самому,так как существующих библиотек нет.

В общем, я больше люблю программировать потому если мне надо было чисто bdd тесты то я скорее взял бы behave, или lettuce, потому как под соусом bdd инструмента я могу напрограммировать все что мне нужно с любой архитектурой. Хотя, впрочем, тоже самое можно сделать и с помощью RF через их API. Так что это больше вкуса.

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

1 лайк

Спасибо, буду думать.

Обязательно поделитесь результатами, интересно, что у вас получиться.

В итоге остановился в выборе на Behave, написал репортар под него, датагенератор и кучу примочек всевозможных, очень удобно, пока тестируем АПИ и Веб фронтэнд, до мобилок лапы не доросли(т.к. апишка автоматизирована, мобилки автоматизировать пока не особо есть смысл, достаточно ручной проверки)
Подробности и плюшности могу описать, если будет интерес.

1 лайк

Очень интересно. Если будет возможности напишите плиз заметку в базу знаний. Буду очень признателен.

Да будет так, постараюсь в воскресенье этим заняться.

1 лайк