Как стать автором
Обновить

Комментарии 6

Так я и не осилил dbms_parallel_execute, кажется легче просто делать пачку джобов

BEGIN 
FOR i IN 0 .. 9 
LOOP 
DBMS_SCHEDULER.create_job (job_name   => 'j_jobname_' || i...

Но если понадобится ожидать завершения всех и правда удобнее в таком варианте, спасибо за идею с connect by.

Берите на вооружение, код рабочий и довольно простой)

Так же смотрел в сторону dbms_parallel_execute и для сохранения логов подламывал пакеты UTP, но ваш способ dbms_output.get_lines элегантнее. Но в итоге не взлетело, остались на стеке Jenkins+Maven+Java+TestNG+Allure. Там и параллельность быстрее и результаты тестов нагляднее. Как вы обрабатываете результаты тестов?

Прошу прощения за длительное время ответа, немного увлёкся интересный работой).

Прогон тестов встроен в конвейер ci/cd (используем Bamboo+Jira), «планы» написаны на python (первые версии были на power shell). Все у нас построено на классовой модели (ООП), т.е. за юниттесты отвечает отдельный класс, который стартует тесты и парсит результаты выполнения. Если получаем зафейлиные тесты, задача возвращается на исходный статус с детальной ошибкой в комментариях с указанием, что и где сломали (в питончике парсится XML, через rest комментируется jira issue). Allure у нас благодаря JUnit парсеру обрабатывает UI тесты (запуск так же в конвейере) и рисует красивые картинки со статистикой выполнения плана бамбу. Юнит-тесты сервера, клиента и UI тесты прогоняются параллельно, независимо друг от друга.)))

Ну и тесты Oracle это про данные, как вы добиваетесь идемпотентности?

Если правильно понял вопрос - тесты генерируют эталонные данные, не везде пока, но мы работаем над этим. Естественно, зашиваться в тестах на определенные разрезы данных - не самое лучшее решение, т.к. данные - сущность непостоянная, поэтому от этого надо уходить. Тесты проверяют результат и время его достижения.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий