Запуск нескольких наборов тестов с разным количеством потоков

Добрый день, возник следующий вопрос - есть большой набор мобильных тестов.
Некоторые из них используют один девайс, некоторые 2 и некоторые 3. Число одновременно запускаемый девайсов конечно и равно 4. Для ускорения прогона возникла идея разбить набор на 3 набора поменьше, и первый из них запускать в 4 потока, второй в 2 и третий в 1. Используется стек Maven + TestNg.

Т.к. динамически изменить thread-count нельзя, попытался создать 3 одинаковых файла testng.xml, разница между которыми в значении параметра thread-count.
А для того, чтобы разные наборы запускали только “свои” тесты (т.е. только те тесты, использующие определенное число девайсов), прописал в каждый сьют вызов лисенера, реализующего интерфейс IMethodInterceptor, в котором происходит фильтрация тестов.
Но при запуске через мавен возникает ошибка, суть которой в том, что лисенер IMethodInterceptor может вызываться только раз, а у меня 3 раза, т.е. этот способ не подходит.

Каким образом можно реализовать запуск разных тестов с разным числом потоков?

CI переписать хмльку перед тестом

@VatslauX Не понял, можно пример, или поконкретнее?

скриптом перед билдом или запуском тестов подменяйте параметры

После запуска тестов изменить thread-count в testng.xml уже не получится, это можно изменить только перед запуском(если вы имеете ввиду изменение параметра после выполнения первого набора тестов со значением параметра, выставленным изначально)

ну так не запускайте все тесты сразу в дной джобе
1я джоба запустит те что 3 тредами
2я джоба например с 4мя

Не хотелось бы дробить отчет по каждой сборке на несколько частей.

попробуйте nested xml suites
в детях определить разные параметры
в перенте запустить всё

Если уж и “колхозить” то на крайний случай есть возможность в одном сьюте разбить нужные тесты по <тест> и каждому из них присвоить нужное число потоков. Но в этом случае тесты будут разбиты не по функционалу, а по числу использованных девайсов, что не есть хорошо

на самом деле я не очень понимаю как вы будете менеджить
свободные девайсы особенно что есть нечётные конфигурации