Если ваша цель автоматизированного интеграционного тестирования - создать воспроизводимые тесты, то я бы порекомендовал новый экземпляр веб-драйвера для каждого выполнения теста.
Каждый тест должен проводиться отдельно, независимо от других тестов или побочных эффектов.
Лично единственное, что мне кажется более неприятным, чем трудно воспроизводимая ошибка, - это недетерминированный тест, которому вы не доверяете.
(Это становится еще более важным для управления самими тестовыми данными, особенно когда вы смотрите на тесты, которые могут изменять постоянное состояние приложения, например операции CRUD.)
Да, дополнительное время выполнения теста стоит дорого, но лучше, чем тратить время на отладку ваших тестов.
Некоторые возможные решения, которые помогут компенсировать это наказание, - это включить тестирование непосредственно в процесс сборки, перейдя от подхода непрерывной сборки к непрерывной интеграции.
Также попытайтесь ограничить объем ваших интеграционных тестов. Если у вас много тяжелых интеграционных тестов, которые тратят время выполнения, попробуйте провести рефакторинг. Вместо этого увеличьте охват ваших более легких модульных тестов базовых сервисных вызовов (где ваша бизнес-логика).