Как стандартная практика, у вас должно быть управление драйверами отдельно от тестового кода, которое должно обеспечивать и управлять сеансом (ами) драйвера в зависимости от конфигурации во время выполнения - параллельной или последовательной работы на одном или нескольких браузерах / платформах.
В нашем случае мы используем qaf с gherkin , а qaf заботится о предоставлении потокового безопасного сеанса драйвера для параллельного или последовательного запуска сценариев в одном или нескольких браузерах.Мы указываем это в файле конфигурации xml, который является стандартным файлом конфигурации test-ng.Например, следующий файл конфигурации запускает сценарии параллельно в двух браузерах (оба браузера параллельны):
<suite name="AUT Test Automation" verbose="0" parallel="tests" thread-count="10">
<test name="Tests on ff" parallel="methods">
<parameter name="driver.name" value="firefoxDriver" />
<classes>
<class name="com.qmetry.qaf.automation.step.client.gherkin.GherkinScenarioFactory" />
</classes>
</test>
<test name="Tests on chrome" parallel="methods">
<parameter name="driver.name" value="chromeDriver" />
<classes>
<class name="com.qmetry.qaf.automation.step.client.gherkin.GherkinScenarioFactory" />
</classes>
</test>
</suite>
Конфигурирование может выполняться в зависимости от потребностей.