Я искал ответы за последние несколько дней и не смог его найти. Самый близкий ответ, который я мог найти, - this, который точно не отвечает на мои вопросы.Параллельное тестовое выполнение с использованием Gradle maxParallelForks свойство
Кстати, у меня есть проект испытаний на селен, который основан на Gradle. Мы строим проект на Jenkins, который запускает тесты в 20 параллельных потоках. Общее число уникальных тестовых классов, которые у меня есть, - 87. Итак, я ожидаю, что gradle выработает не менее 5 партий. Проект тестирования строится с использованием JVM Cucumber, строит и запускает тесты Jenkins в Selenium Hub. Я попытался увеличить параллельность тестов, используя как можно больше сетку. Но проблема началась, когда число тестов начало расти.
Когда я начал тесты у Дженкинса, я заметил, что сначала выстрел прошел все 20 тестовых процессов, и я вижу, что вторая партия также началась с того же количества процессов. После второй партии процессы возвращались в единый режим, и для выполнения всего задания потребовалось 14 часов, что привело к неудаче в попытке выполнить параллельное тестирование.
Gradle свойства:
jvmArgs '-Xms128m', '-Xmx1024m', '-XX:MaxPermSize=128m'
Runtime.runtime.availableProcessors().toString()) as int
maxParallelForks = PropertyUtils.getProperty('test.parallel', '15') as int
forkEvery = PropertyUtils.getProperty('test.forkEvery', '0') as int
CLI:
gradle clean test -Dtest.single=*TestRun --info
Я прочитал все документы, я могу возможно найти, но не смог получить ответ. Был бы рад, если кто-то может помочь мне с этими вопросами.
1. Как Gradle выставляет тестовый бегун внутри? Например, если запущено 20 исполнителей и тест 1,2,3 выполняется быстрее других, выполняются ли три исполнителя еще три класса тестов или ждут завершения выполнения всего пакета?
2. Может ли forkEvery влиять на то, как выполнение выполняется во время параллельного тестирования?
Дженкинс войти
Успешно начал процесс 'Gradle Тест Исполнитель 6'
Успешно начал процесс 'Gradle испытаний Исполнитель 13'
Успешно начал процесс 'Gradle Тест Исполнитель 14'
Успешно начатый процесс «Испытание протекторов 5»
Успешно начал процесс 'Gradle Тест Исполнитель 16'
Успешно начал процесс 'Gradle Тест Исполнитель 8'
Успешно начал процесс 'Gradle Тест Исполнитель 19'
Успешно начал процесс «Gradle Тест Executor 4 '
Успешно начал процесс 'Gradle Тест Исполнитель 2'
Успешно начал процесс' Gradle Тест Исполнитель 11'
Успешно начал процесс 'Gradle Тест Исполнитель 10'
Успешно начал процесс 'Gradle Тест Исполнитель 18'
Успешно начал процесс 'Gradle Тест Исполнитель 1'
Успешно начал процесс " Gradle Тест Исполнитель 20'
Успешно начал процесс 'Gradle Тест Executor 7'
Успешно начал процесс 'Gradle Тест Executor 9'
Успешно начал процесс 'Gradle Тест Исполнитель 3'
Успешно начал процесс 'Gradle Тест Executor 15'
Успешно начал процесс 'Gradle испытания Исполнителя 17'
Успешно запущенный процесс «Тест-драйв-исполнитель 12»
Исполнительный экзамен 13 был запущен.
Исполнительный экзамен Gradle 14 исполнил тесты.
Исполнительный экзамен Gradle Test 6 начал выполнение тестов.
Исполнительный экзамен 5-го поколения начал выполнять испытания.
Исполнительный экзамен Gradle 16 начал выполнение тестов.
Исполнительный экзамен Gradle 19 исполнил тесты.
Исполнительный экзамен Gradle 8 исполнил тесты.
Исполнительный экзамен Bradle Test 4 начал выполнение тестов.
Исполнительный экзамен Gradle 2 исполнил тесты.
Исполнительный экзамен Gradle Test 10 начал выполнение тестов.
Исполнительный экзамен 11-го класса начал выполнять испытания.
Исполнительный экзамен Gradle 18 исполнил тесты.
Исполнительный экзамен Gradle Test 1 начал выполнение тестов.
Исполнительный экзамен Gradle 20 исполнил тесты.
Исполнительный экзамен Gradle 7 исполнил тесты.
Исполнительный экзамен 3-го уровня начал выполнять испытания.
Исполнительный экзамен Gradle 9 исполнил тесты.
Исполнительный экзамен Gradle 17 начал выполнение тестов.
Исполнительный экзамен 15-го поколения начал выполнять испытания.
Исполнительный экзамен 12-го класса начал выполнять испытания.
Вы знаете, что работает 20 браузеров (при условии, что селен), вероятно, будет медленнее, чем 1? –
@tim_yates true. Но я использую селеновую сетку и несколько машин. Это ты имел в виду? – Saifur