Когда я впервые сделал это, я столкнулся с теми же проблемами, что и вы - я обнаружил, что мои тесты выполнялись быстрее всего с 4 потоками, хотя я получал много сбоев. Проблема оказалась в том, что наша система не могла обрабатывать четыре запроса на вход в систему одновременно. Я пытался сделать код потокобезопасным, но это тоже не сработало; в конце концов я создал 4 учетных записи для нашей системы и использовал статическую переменную, которая увеличивалась при каждом входе в систему. Это приведет к тому, что следующий тест будет использовать следующую учетную запись.
Если ваши тесты требуют функциональности входа в систему, возможно, это может быть ваша проблема?
Вы можете установить максимальное количество потоков, добавив эту строку под строками "using" в верхней части кода (примечание: достаточно добавить эту строку в один класс, вам не нужно добавлять ее в каждый отдельный класс). )
[assembly: Parallelize(Workers = 4, Scope = ExecutionScope.MethodLevel)]
Если вы измените 4 на 0, тогда будет использовано максимальное количество потоков для вашего процессора (для меня это 8 экземпляров chromedriver, хотя 4 было намного быстрее!).