Добрый день, возник следующий вопрос - есть большой набор мобильных тестов.
Некоторые из них используют один девайс, некоторые 2 и некоторые 3. Число одновременно запускаемый девайсов конечно и равно 4. Для ускорения прогона возникла идея разбить набор на 3 набора поменьше, и первый из них запускать в 4 потока, второй в 2 и третий в 1. Используется стек Maven + TestNg.
Т.к. динамически изменить thread-count нельзя, попытался создать 3 одинаковых файла testng.xml, разница между которыми в значении параметра thread-count.
А для того, чтобы разные наборы запускали только “свои” тесты (т.е. только те тесты, использующие определенное число девайсов), прописал в каждый сьют вызов лисенера, реализующего интерфейс IMethodInterceptor, в котором происходит фильтрация тестов.
Но при запуске через мавен возникает ошибка, суть которой в том, что лисенер IMethodInterceptor может вызываться только раз, а у меня 3 раза, т.е. этот способ не подходит.
Каким образом можно реализовать запуск разных тестов с разным числом потоков?
После запуска тестов изменить thread-count в testng.xml уже не получится, это можно изменить только перед запуском(если вы имеете ввиду изменение параметра после выполнения первого набора тестов со значением параметра, выставленным изначально)
Если уж и “колхозить” то на крайний случай есть возможность в одном сьюте разбить нужные тесты по <тест> и каждому из них присвоить нужное число потоков. Но в этом случае тесты будут разбиты не по функционалу, а по числу использованных девайсов, что не есть хорошо