Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Внедрение автоматизации для Web в команду

robot-framework
python
webdriver
Теги: #<Tag:0x00007f7b64ac0d50> #<Tag:0x00007f7b64ac0be8> #<Tag:0x00007f7b64ac09e0>

#1

Здравствуйте, уважаемые автоматизаторы!

Хотелось бы узнать мнение опытных людей по внедрению автоматизации в команду manual тестеров.
Я оказалась в новой незнакомой команде, не знаю как они работают и что знают. Но понимаю что ни у кого опыта в автоматизации нет (так об этом и говорят). У меня, например, есть опыт только написания пары автоматических тестов с использованием Selenium Web Driver на Java.

Что знаю о задаче:
Команда предпочитает язык Python (у меня в освоении нового языка думаю проблем не возникнет).
Хотят использовать Robot framework (с библиотекой SeleniumWeb driver и может быть что-то ещё)
Хотят автоматизировать Web (и может в будущем ещё и мобильные приложения)
Наверное будем автоматизировать приёмочное тестирование хотябы для начала ( упомянули BDD и ATDD и gherkin language)
Для continuous integration использовать Badoo (не ясно дружит ли с Robot Framework?)

С чем посоветуете ознакомиться, чтобы понять как это всё связать вместе (и возможно ли это всё связать вместе)? Может есть какие-то примеры тестов или описание самого внедрения автоматизации?
Что посоветуете для внедрения автоматизации для Web с учётом вышеперечисленных требований? Может лучше вместо Badoo использовать что-то другое (не нашла особой информации о Badoo).

Прошу не гневаться и не блестать сарказмом :slight_smile: Я только начинаю это всё осваивать и хочу научиться :), поэтому может вопросы поставлены также неверно… В основном много опыта только в ручном тестировании, с автоматизацией ещё нигде не работала, были только свои попытки написания тестов.

И ещё что для меня лично не понятно:

  1. Какие именно задачи выполняют фреймворки, вроде Robot? Почему их так много?))
    Сложно понимать почему именно выбирают тот или иной фреймворк, почему нет чего-то одного.

  2. CI - я так понимаю, что это что-то вроде организации какого-то сервера, который будет управлять автоматическим тестированием без участия тестировщиков? Например, когда код или версия программы обновляется, а сервер тут же включает автоматические тесты и получает-рассылает результаты тестировщикам?

  3. Важно или не важно в какой IDE это будет всё писаться? Есть какие-то предпочтительные для автоматизации тестирования?

  4. Как именно тестировщики связывают автоматические тесты с CI-сервером? Что нужно для организации CI?


(Sergey Pirogov) #2

А почему решили использовать именно геркин и бдд?


#4

Мне тоже это интересно. Чуть позже выясню детали, а пока всё что есть. Просто перед вливанием в команду хотелось бы изучить возможности, чтобы было понятно от чего отталкиваться и что можно бы было рассмотреть. Может выберем не gherkin, и не Badoo, может остановимся на чём-то другом. Просто хотелось бы услышать опытное мнение. Может уже кто-то сталкивался с проблемой внедрения автоматизации в проекты. Пока рассматриваются разные варианты. Мне лично хотелось бы узнать что бы мы могли применить/подключить (используя Robot и Python) в автоматизацию, что бы было лучше использовать для CI. Можно ли автоматизировать BDD и ATDD одновременно, или лучше выбрать что-то одно? Мне просто нужно понять что поизучать, чтоб было лучше понимать куда двигаться и что выбирать из большого кол-ва возможностей )) Пока это всё только планируется внедряться и к точным каким-то решениями ещё не пришли.


(Serhii Tanchenko) #5

В целом это работает так: Девелопер делает изменение в коде и отправляет изменения в центральный репозиторий (SVN, git, Mercurial, etc.). Ваш CI-сервер (Jenkins, TeamCity, etc.) постоянно проверяет репозиторий на наличие новых изменений, если таковы есть, то будут запускаться тесты или что-то другое, все зависит от ваших настроек.
Нагляднее на картинке:
http://www.dnafor.net/wp-content/uploads/2013/09/CI.png

Не важно.

В общем нужна просто отдельная машина, на нее ставите Jenkins или что-то в этом роде. Машина должна иметь доступ к репозиторию с приложением и тестами. Потом нужно настроить и все.

можете почитать мнения сдесь: Используете ли вы BDD по назначению?

Если ни у кого опыта в автоматизации нет, может лучше взять автоматизатора с опытом? :smile:


#6

:smiley: знаете, этот вопрос я уже задавала тимлиду… наверное, лёгких путей не ищем и верим в команду :smiley:


#7

Спасибо за подсказки)) что-то немножко начинает проясняться.


(Denis Gayevskiy) #8

это сервис знакомств, а вам нужен сервер непрерывной интеграции - Bamboo


(Александр Таранков) #9

Несколько похожих тем на форуме, для изучения:




(Александр Таранков) #10

По теме могу сказать следующее:

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

и т.д. и т.п. :smile:


(Mykhailo Poliarush) #12

Практически любой CI сейчас можно интегрировать с любым open source инструментом автоматизации. И этот случай не исключение. Просто вопрос в том насколько это легко или сложено будет сделать. С данным CI не работал, но более чем уверен что подключить каким-то образом можно.

Цельных источников от а до я нет. Можно найти только отдельные статьи. Рекомендую посмотреть серию статей https://blog.codecentric.de/en/category/agile/agile-testing/ robotframework tutorial.

А что советовать тут просто надо брать и делать :smile:

  1. изучите питон
  2. установите и настройте проект в robotframework, много ссылок на полезные библиотеки найдете здесь https://github.com/atinfo/awesome-test-automation/blob/master/python-test-automation.md
  3. изучите и подключите к selenium2library https://github.com/rtomac/robotframework-selenium2library, возможно сделайте обертку над ней.
  4. если хотите получить возможность писать и запускать тесты не только из robotframework а из питона то посмотрите на https://github.com/ncbi/robotframework-pageobjects
  5. создайте определенное количество уже живых тестов, которые запускаются локально
  6. интегрируйте запуск в CI

Касательно CI, конечно лучше выбрать Jenkins так как там есть плагины для поддержки robot framework https://wiki.jenkins-ci.org/display/JENKINS/Robot+Framework+Plugin

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

Именно так и должен работать, но это идеальный случай. Зачастую это просто web интерфейс для того чтобы зайти нажать на кнопку чтобы запустились тесты и потом через web интерфейс посмотреть результаты.

Это не особо важно, хотя выбор хорошего IDE дает преимущество в скорости кодирования через всякие подсказки и дополнения. Для питона рекомендую вам PyCharm, а также SublimeText

Это немного абстрактный вопрос, на который тяжело просто ответить. Но все же.

  1. делается проект
  2. выкладывается проект в версионный контроль
  3. устанавливается CI и настраивается окружение, где-то на каком-то сервере
  4. создается задача для запуска тестов в CI
  5. CI вытаскивает из версионного контроля проект
  6. запускает его и складывает куда-то результаты, которые видны из CI

где-то так :smile:


(Serhii Tanchenko) #13

я подумал они свой CI написали :smile:
как TeamCity от jetbrains


(Serhii Tanchenko) #14

Посмотрел доклад Алексея Баранцева об автотестах и почти на 100% уверен, что он будет Вам полезен:


#15

Всем спасибо за комментарии!


(Dmitriy Zverev) #16

robot framework внедрял в более 10 командах (не только web). “робот”, как мне кажется, заставляет продумывать правильную архитектуру, и невольно подталкивает в верном направлении, порог входа достаточно низкий. правда, я не являюсь евангелистом какого-то фреймворка. интегрируется с любым CI, красивее всего - с Jenkins. IDE не важно, у нас пишут в Pycharm, Sublime, Eclipse.