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

Как протестировать функционал планировщика?


(Taras) #1

Как протестировать функционал планировщика (или как протестировать что что то будеть происходить через неделю, месяц итд, если ето можно сконфигурировать ) ???

Есть функционал:
У нас в проекте есть функционал которий подсчитивает аналитику, обрабативая какие то разносортние дание(числовие) и генерит графики, таблички итд. Так как даних много и они меняються итд итп, то запуск подсчета делаеться вручную и отрабативает некоторое время, ето ми називаем процесс.

Девелопери прикрутили “скедулер” (по запросам заказчика) - теперь можна такие “процесси” запускать по рассписанию, например подсчитай мне аналитку(тоесть запусти процесс) каждую пятницу или там каждий месяц в такой то день (работает на основе quarz scheduler i cron). Тайминг хендлиться на бекенде, фронтенд только отрисовивает, соотвественно время на UI-ке js-ом никак не поменяешь, оно просто никак не скажеться на работе сервисов. Так как сервиси раняться на клаудах, то поменять там время не получиться.

Вопрос: Как тестировать в такой ситуации ? Рассматриваю любие подходи , желательно автоматизация.

Стоит задача например протестировать такой кейс, ну и другие по аналогии:

Настроить запуск процесса каждую вторую среду месяця. Проверить что процес запустился именно каждую вторую среду., итд.


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

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

Вам надо просто правильно его сконфигурировать. А для этого просто внимательно надо прочитать мануал и поэкспериментировать в пределах часа, дня, недели, двух.

Если же надо именно убедиться, что всё в сборе точно работает на продолжительном интервале времени, можно попробовать такие варианты:

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

(Sergey Korol) #3

Попросите у девов список команд вэб-сервиса, отвечающего за тайминг. Напишите свою мини-мониторинг систему. Можно поднять маленький http клиент-сервер, к примеру, Jetty / GrizzlyHttpServer + Jersey. На нем устроить опрос удаленного сервиса с заданной периодичностью. Если сервис оповестил о запуске процесса, тригерим Jenkins job (via http), запускающий ваши UI тесты для сбора данных по аналитике.