Паралельный запуск одного и того же теста из сьюта в зависимости от параметров

Всем привет.

В общем интересный вопрос. Попробую объяснить на примере.
Например есть 4 браузера, неважно какие. Есть фабрика этих драйверов.
Есть testNG сьют вида:

<suite name="">
<parameters>
<test name=""></test>
<suite>

Драйвер заводится в базовом классе в отдельный тред в @BeforeTest методе

Вопрос следующий. Можно ли запустить тест из этого сьюта для всех драйверов в паралели?
Условия такие:

  1. Внутри теста никаких for(фабрика драйверов) быть не должно
  2. несколько тестов внутри сьюта с параметрами фабрики тоже не рассматривается.

Почему созрел такой вопрос. Есть 20 андроид девайсов. Тест для всех универсальный. Разница только в параметрах сьюта, в которых прописаны адреса девайсов.
Не хочется делать 20 одинаковых сьютов с разницей в параметрах.
Не хочется делать длинющий сьют с кучей тестов для каждого девайса.

смотрите в сторону testNG data providers. в нем можно вычитать либо системную переменную с теми драйверами, на которых нужно запускать, либо параметр сьюта. Не намного сложнее, если вот такие тесты нужно сделать параметризированными, но тоже можно решить.

Дата провайдер для теста и без того используется. Он собирает данные из xml конфига и через конвертер собирает нужный мне объект, передавая его в тест.

С вопросом о чтении конфига и системных пропертей нету. Вопрос реализации запуска драйвера из теста сьюта.
Т.е. если я например в @BeforeTest поставлю цикл на фабрику девайсов(запуск цикла зависит от параметров теста, например device=all) - он просто запустит кучу дарйверов, а тест будет выполняться только на одном из них.