Я хочу протестировать сеть в многопоточности, но когда я открываю слишком много хромированных драйверов, они используют слишком много памяти. Могу ли я использовать многопоточность в одном браузере?
Может ли Selenium использовать многопоточность в одном браузере?
Ответы (2)
WebDriver не потокобезопасный. Проблема безопасности потоков не в вашем коде, а в фактических привязках браузера. Все они предполагают, что будет только одна команда за раз (например, как настоящий пользователь). Но, с другой стороны, вы можете создать один экземпляр WebDriver для каждого потока, но он запустит несколько браузеров, которые будут потреблять больше памяти.
Многопоточность должна выполняться на разных экземплярах Webdriver, поскольку сам Webdriver является одним потоком.
На одном и том же Webdriver можно запускать разные потоки, но тогда результаты тестов будут не такими, как вы ожидали. Позвольте мне это объяснить.
Когда вы используете многопоточность для запуска разных тестов на разных вкладках (что не невозможно, требуется немного кодирования), действия, которые вы будете выполнять, такие как нажатие или отправка ключей, перейдут на открытую вкладку, которая в данный момент сфокусирована независимо от теста. Бег. Это означает, что весь тест будет выполняться одновременно на той же вкладке, которая имеет фокус, а не на предполагаемой вкладке.
Вы можете прочитать о многопоточности в Webdriver.