Подход к оптимизации времени исполнения тестов в TA от марта 2025

February 22, 2025

Введение

Методика

Бейзлайн

Среднее время запуска одного (последнего добавленного - возврат метод получения страницы программ должен возвращать только программы аутентифицированного терапевта) теста: 6 секунд ровно.

  • 5:80
  • 5:85
  • 6:00
  • 6:03
  • 7:60

Среднее время запуска 189 (из 192 всех) быстрых тестов: 18.4 секунды

  • 18:20
  • 18:23
  • 18:40
  • 18:77
  • 26:73

Линивая инициализация бинов

Среднее время запуска одного теста: 5.83 секунды

  • 5:49
  • 5:74
  • 5:83
  • 5:92
  • 6:41

Среднее время запуска 189 быстрых тестов: 19.4 секунды

  • 18:97
  • 19:00
  • 19:28
  • 19:72
  • 22:34

Создание БД из шаблона при запуске тестов

Среднее время запуска одного теста: 5.37 секунды

  • 5:39
  • 5:37
  • 5:43
  • 5:50
  • 5:64

Среднее время запуска 189 быстрых тестов: 18.46 секунды

  • 18:24
  • 18:45
  • 18:46
  • 18:66
  • 18:99

Добавление бейзлайна Flyway-я

Среднее время запуска одного теста: 5.97 секунды

  • 5:56
  • 5:74
  • 5:97
  • 6:11
  • 6:32

Среднее время запуска 189 быстрых тестов: 20.49 секунды

  • 19:57
  • 20:15
  • 20:49
  • 20:83
  • 21:10

Конфигурация Postgres на максимальную производительность

Среднее время запуска одного теста: 5.83 секунды

  • 5:68
  • 5:73
  • 5:83
  • 6:14
  • 6:42

Среднее время запуска 189 быстрых тестов: 19.81 секунды

  • 19:52
  • 19:64
  • 19:81
  • 21:55
  • 22:13

Переезд на Postgres 17.4

Среднее время запуска одного теста: 5.89 секунды

  • 4:95
  • 5:79
  • 5:89
  • 6:24
  • 6:25

Среднее время запуска 189 быстрых тестов: 20.58 секунды

  • 18:78
  • 19:25
  • 20:58
  • 20:81
  • 21:28

DB Template + Non-durable Postgres + 17.4

Среднее время запуска одного теста: 5.69 секунды

  • 5:60
  • 5:68
  • 5:69
  • 5:70
  • 5:77

Среднее время запуска 189 быстрых тестов: 18:49 секунды

  • 18:24
  • 18:45
  • 18:49
  • 18:81
  • 21:95

Заключение