Перейти к содержимому

Фотография

Запуск автотеста в автоматическом режиме


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 19

#1 Quepasa

Quepasa

    Новый участник

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Свечников Евгений

Отправлено 15 октября 2020 - 13:36

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

Интересует самый простой способ через какое-то ПО (например Jenkins) реализовать CI, чтобы данный тест запускался регулярно в установленное время самостоятельно.

Бился с Jenkins, но так и не смог настроить, запутался со всем чем только можно было, в частности с codeception, вообще так и не понял что это и зачем.

Перелопатил много информации с youtube и прочих сайтов, но так и не смог найти истину. Заранее спасибо!Буду благодарен любой информации!


  • 0

#2 rlabs

rlabs

    Специалист

  • Members
  • PipPipPipPipPip
  • 660 сообщений
  • Город:Россия, Санкт-Петербург

Отправлено 21 октября 2020 - 16:27

а что у вас в компании используется в качестве CI? Вообще ничего?

 

тогда самое простое, что можно сделать - запускать батник с тестами любым системным средством (cron, windows task scheduler).


  • 0

#3 Quepasa

Quepasa

    Новый участник

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Свечников Евгений

Отправлено 22 октября 2020 - 05:52

а что у вас в компании используется в качестве CI? Вообще ничего?

 

тогда самое простое, что можно сделать - запускать батник с тестами любым системным средством (cron, windows task scheduler).

Вообще ничего сейчас нет. Запускать батник - вариант. Но как наблюдать результаты выполнения и вовремя реагировать на неуспешные запуски?Хотелось бы все таки сделать все "правильно"


  • 0

#4 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 22 октября 2020 - 06:54

Тогда, да самое простое - установить дженкинс, настроить там задачу на запуск тестов, если произошло падение - отсылка письма на почту что тесты упали.


  • 0

#5 Quepasa

Quepasa

    Новый участник

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Свечников Евгений

Отправлено 22 октября 2020 - 07:06

Тогда, да самое простое - установить дженкинс, настроить там задачу на запуск тестов, если произошло падение - отсылка письма на почту что тесты упали.

в этом собственно и вопрос также)развернул jenkins у себя пока локально, есть файлик с кодом теста, который в pycharm отрабатывает корректно, как запустить его в jenkins - не могу найти нормального туториала.


  • 0

#6 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 22 октября 2020 - 08:11

Так это же простая, наверно, команда для консоли.

Как запустить тесты из командной строки? - вот надо добавить шаг сборки - Выполнить команду:

 

Прикрепленный файл  2020-10-22_11-09-39.png   331,63К   2 Количество загрузок:

 

Так же есть плагин https://plugins.jenkins.io/python/

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


  • 0

#7 Bobunov

Bobunov

    Новый участник

  • Members
  • Pip
  • 14 сообщений


Отправлено 20 ноября 2020 - 10:00

Ставим poetry для менеджмента либами.

Потом запихиваем все это дело в докер.

После, в идеале, пушим этот докер образ в свой локальный регистри. 
Из регистри пулим в джобу дженкинса.

В джобе одной комадой запускаем тесты внутри докер образа. (параметры запуска передаем как переменные для запуска)

 

Сейчас нифига не понятно, что у вас происходит. Тесты у вас на локальной тачке. Дженкинс якобы тоже. При запуске джобы дженкинса, какое окружение он использует? Есть ли там все либы для тестов и все нужные доступы? 

А что у вас вообще используется для хранения кода? github, gitlab, local git or svn?)

 

Ваш вопрос стоит перефразировать - как настроить полный цикл автоматизации тестирования)


  • 0

#8 Quepasa

Quepasa

    Новый участник

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Свечников Евгений

Отправлено 20 ноября 2020 - 12:43

Ваш вопрос стоит перефразировать - как настроить полный цикл автоматизации тестирования)

вот тут в яблочко просто


  • 0

#9 Bobunov

Bobunov

    Новый участник

  • Members
  • Pip
  • 14 сообщений


Отправлено 20 ноября 2020 - 13:08

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

 

Так в чем и где вы храните код? Вы используете локальные версии или облачные?
Если github или gitlab, то там можно встроенным функционалом  воспользоваться чтобы завести CI и не прийдется возиться с дженкинсом. Это базовый вопрос, с которого стоит начинать думать о CI. 

И сразу начинайте думать как будете изолировать ваши тесты. Я про окружение. Как я и писал, я чаще всего использую python+pytest+poerty и все это в докере. Poetry помогает менеджить библиотеки для python, а докер изолировать весь код от окружения. 


  • 0

#10 Quepasa

Quepasa

    Новый участник

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Свечников Евгений

Отправлено 27 ноября 2020 - 20:50

Так в чем и где вы храните код? Вы используете локальные версии или облачные?

Если github или gitlab, то там можно встроенным функционалом  воспользоваться чтобы завести CI и не прийдется возиться с дженкинсом. Это базовый вопрос, с которого стоит начинать думать о CI. 

мой код написан на моей локальной машине, в pychram, также есть репозиторий в гите. цель - любая среда, в которую я смогу отправить свои тесты, настроить автоматический прогон тестов без моего участия. про  изоляцию - далек пока от этой терминологии к сожалению, но учусь)


  • 0

#11 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 27 ноября 2020 - 21:00

Берёте машину, устанавливаете на неё Дженкинс.

В нём настраиваете задачу на запуск тестов (в ней сначала указывается 1. взять код из гита и 2. запустить его).

Можно настроить чтобы тесты запускали на этой же машине, либо ещё на другой, которая подключена к Дженкинсу внутренними средствами уже самого Дженкинса.


  • 0

#12 Bobunov

Bobunov

    Новый участник

  • Members
  • Pip
  • 14 сообщений


Отправлено 30 ноября 2020 - 07:48

 

Так в чем и где вы храните код? Вы используете локальные версии или облачные?

Если github или gitlab, то там можно встроенным функционалом  воспользоваться чтобы завести CI и не прийдется возиться с дженкинсом. Это базовый вопрос, с которого стоит начинать думать о CI. 

мой код написан на моей локальной машине, в pychram, также есть репозиторий в гите. цель - любая среда, в которую я смогу отправить свои тесты, настроить автоматический прогон тестов без моего участия. про  изоляцию - далек пока от этой терминологии к сожалению, но учусь)

 

В первом сообщении этой темы вы указали, что "Столкнулся с проблемой автоматизации автотестов на проекте. Начинаю автоматизацию на проекте с нуля".
Этот проект где то находится? Где оно хостится {host_type and host_name}? Используется ли на проекта свой вариант с CI? Или это веб и его код находится {hosting_name}, а как CI используется {name}.... 
Поймите до тех пор пока вы не опищие существующую инфраструктуру проекта, трудно дать корректные советы для вашего случая. 

Я могу вам накидать сразу несколько схем как можно стартануть автоматизацию, и каждая из них будет иметь косяки и может вам не подойти. 
Как вариант у гитхаба есть зачатки своего CI. 
https://docs.github....ous-integration
https://github.blog/...supports-ci-cd/

По факту, в этой теме вы до сих пор не дали никаких конкретных данных. Чисто выброс чувств "Помогите". 
Дайте больше контекста, чтобы было с чем работать.
"Проект который автоматизируем это - {}. Хоститься - {}. Как CI используется - {}. Проект написан на  - {}." И вот дальше уже должно идти - Помогите.  
 

Почему я так категоричен? Потому что автоматизацию нужно делать оглядываясь на сам проект.
Странно будет если у вас код на Гитхаб, а сам проект на Гитлабе или внутреннем репозитории.
Странно будет если у вас тесты гоняются на дженкинсе, когда сам проект использует Gitlab-ci. 


  • 0

#13 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 30 ноября 2020 - 13:59

 

10 сообщение же


  • 0

#14 Bobunov

Bobunov

    Новый участник

  • Members
  • Pip
  • 14 сообщений


Отправлено 01 декабря 2020 - 07:29

 

 

10 сообщение же

 

Эм.... ссори, не вкурил, причем тут "10 сообщений"?
Поясни пожалуйста)


  • 0

#15 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 01 декабря 2020 - 11:15

https://software-tes...me/#entry178028


  • 0

#16 Bobunov

Bobunov

    Новый участник

  • Members
  • Pip
  • 14 сообщений


Отправлено 01 декабря 2020 - 13:30

В том сообщении автор описал как Он делает Тесты сейчас, а меня интересует как организована командная работа на проекте который он тестирует. 

 

Одно дело когда команда весь процесс ведет в гитлабе, и тогда нефиг советовать ему пихать тесты в дженкинс. Другое дело если это тестовое задание и нужно просто показать что ты умеешь это делать.

Вот потому я и просил больше конкретной информации...


  • 0

#17 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 01 декабря 2020 - 16:23


В том сообщении автор описал как Он делает Тесты сейчас, а меня интересует как организована командная работа на проекте который он тестирует. 

 

Одно дело когда команда весь процесс ведет в гитлабе, и тогда нефиг советовать ему пихать тесты в дженкинс. Другое дело если это тестовое задание и нужно просто показать что ты умеешь это делать.

Вот потому я и просил больше конкретной информации...

 

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


  • 0

#18 Bobunov

Bobunov

    Новый участник

  • Members
  • Pip
  • 14 сообщений


Отправлено 02 декабря 2020 - 08:17

 


В том сообщении автор описал как Он делает Тесты сейчас, а меня интересует как организована командная работа на проекте который он тестирует. 

 

Одно дело когда команда весь процесс ведет в гитлабе, и тогда нефиг советовать ему пихать тесты в дженкинс. Другое дело если это тестовое задание и нужно просто показать что ты умеешь это делать.

Вот потому я и просил больше конкретной информации...

 

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

 

"Начинаю автоматизацию на проекте с нуля, нет ни людей, которые могли бы поделиться опытом ни собственно самого опыта у меня нет. " - тут ничего нет про проект и как работает команда)... 
Ну да пофиг. Как я смотрю автору самому это уже не надо. Прошло 2 недели с момента создания поста. 


  • 0

#19 Quepasa

Quepasa

    Новый участник

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Свечников Евгений

Отправлено 03 декабря 2020 - 11:54

"Начинаю автоматизацию на проекте с нуля, нет ни людей, которые могли бы поделиться опытом ни собственно самого опыта у меня нет. " - тут ничего нет про проект и как работает команда)... 

Ну да пофиг. Как я смотрю автору самому это уже не надо. Прошло 2 недели с момента создания поста. 

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

Что касается проекта, то там на данный момент автоматизации нет вообще как таковой, проект хранится также в репозитории на битбакете. Проект достаточно большой, хотя не особо есть с чем сравнить. Выше я писал о том, какую цель я преследую, мне нужно развернуть CI на своем проекте. И чем проще я это реализую на начальном этапе, тем лучше. Для меня главное чтобы я смог продемонстрировать результат работы теста не на своей локальной машине, а в автономном режиме, а также мониторить самостоятельно эти результаты.


  • 0

#20 Bobunov

Bobunov

    Новый участник

  • Members
  • Pip
  • 14 сообщений


Отправлено 03 декабря 2020 - 13:49

 

"Начинаю автоматизацию на проекте с нуля, нет ни людей, которые могли бы поделиться опытом ни собственно самого опыта у меня нет. " - тут ничего нет про проект и как работает команда)... 

Ну да пофиг. Как я смотрю автору самому это уже не надо. Прошло 2 недели с момента создания поста. 

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

Что касается проекта, то там на данный момент автоматизации нет вообще как таковой, проект хранится также в репозитории на битбакете. Проект достаточно большой, хотя не особо есть с чем сравнить. Выше я писал о том, какую цель я преследую, мне нужно развернуть CI на своем проекте. И чем проще я это реализую на начальном этапе, тем лучше. Для меня главное чтобы я смог продемонстрировать результат работы теста не на своей локальной машине, а в автономном режиме, а также мониторить самостоятельно эти результаты.

 

Вот уже что-то конкретное. У битбакет есть свой CI - правда хз платный тариф у вас или нет. Бесплатного CI там свего на 50 минут((
Гуглить - "bitbaket ci примеры". Первые же ссылки дадут примеры того как настраивать CI на bitbaket. 
Вот пример офф доки - https://support.atla...cket-pipelines/

 

Теперь стоит понять у нас тесты будут в том же репозитории что и проект, или это будет отдельный реп под тесты. Исходя из того что вы пытались прикрутить дженкинкс, я предпологаю что у вас отдельный реп для этого дела. 
На данный момент у любого сервиса (Gihub, gitlab, Bibaket, Circle) есть свои CI которые заводятся с полпинка - стоит только добавить конфиг что и как делать. Первоначально бывают проблемы с тем чтобы понять какой runner стоит использовать и только.

 

Ниже я изложу свои размышления, надеюсь они вам помогут. 
Итак, у нас есть 2 репозитория - проект и тесты для него.

Проект находится на битбакет, мы не знаем настроена на нем CI или нет, и так же не знаем настроена эта CI внутри битбакет или используется сторонний сервис. Буду предпологать что CI есть и это битбакет. 
Тесты находятся в отдельной репе и не имеют CI. С моей стороны было бы логично попробовать запустить CI битбакета, чтобы не прикручивать сторонние сервисы. Как гуглить примеры я кинул выше. "прикрутить ci битбакета" - это значит добавить в репозиторий конфиг, в котором будет описано какой раннер брать и какие шаги проходить. 


Ньюансом может выступить то что у вас тесты не изолированны, т.е. не в докере (как пример). Не изолированны - это значит что вам в CI прийдется настраивать окружение для ваших тестов и прописывать все зависимости (корректные версии библиотек и т.п.)

 

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

----

А вообще я бы перенес код в Gihub or Gitlab и запустил там CI. Gitlab дает 400 минут на бесплатном тарифе, Gihub - 2000 минут. 

Дженкинс интересен когда нужно что-то кастомизировать, иметь возможность поправить все под себя и когда есть тот кто разбирается в дженкинсе))) 


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных