testplane-chunks
Обзор
Исполь зуйте плагин testplane-chunks, чтобы распараллелить запуск тестов.
Если в вашем проекте большое количество тестов и при этом не хватает мощности отдельных CI-серверов, чтобы выполнить все эти тесты на одном сервере за приемлемое время, то этот плагин — для вас.
Плагин позволяет распараллелить запуск тестов на нескольких серверах. Тем самым ускорив общий прогон тестов. Однако сам плагин не занимается какой-либо оркестрацией, распараллеливанием запуска или слиянием получившихся отдельных отчетов в один итоговый отчет.
Что же тогда делает данный плагин?
Плагин testplane-chunks
разбивает всегда одним и тем же способом ваш набор тестов на заданное количество порций (chunks) и отдает testplane на запуск только ту порцию, которую вы указали. Здесь ключевое — «всегда одним и тем же способом». То есть операция разбиения на порции (чанки) является идемпотентной.
Что дает идемпотентность?
Вы можете организовать в своем CI переиспользование результатов запусков тестов из отдельных чанков при общем перезапуске. Это позволит вам сэкономить время при перезапуске всех тестов, так как прогоняться будут только те чанки, в которых есть упавшие тесты.
Например, в вашем проекте есть 1 тысяча тестов. Вы разбили эти тесты на 10 чанков по 100 тестов в каждом. Это означает, что при запуске тестов в вашем пулл-реквесте, у вас будет 10 инстансов testplane, запущенных одновременно на 10 серверах. Каждый инстанс выполнит по 100 тестов. В каких-то из этих запусков тесты могут упасть. Например, 2 из 10 чанков у вас упали. Вы решаете перезапустить прогон тестов, рассчитывая, что на этот раз тесты пройдут. Так вот, при перезапуске testplane с указанием номера упавшего чанка, вы можете быть абсолютно уверены, что плагин testplane-chunks
сформирует для testplane точно такую же порцию тестов как и в прошлый свой запуск.
Организуя перезапуск тестов в своем CI, помните, что для переиспользования запусков отдельных чанков, исходное количество тестов, их имена, или количество браузеров, в которых они запускаются, не должны меняться между запусками. Иначе чанки в новом запуске уже не будут такими же, как в прошлый раз. И хотя формально вы получите то же количество чанков, что и в прошлый раз, их содержимое при этом будет отличаться. А значит переиспользование прошлых результатов окажется некорректным.