Хочу настроить параллельный запуск тестов через TestNG, пробывал вот так но в результате, запускается два браузера, но тесты проходят только в одном, во втором ничего не происходит(
Можете скинуть пример или кусок кода как правильно запускать тесты с вот таким сьютом:
Там написан фреймворк, может немного запута но постараюсь обьяснить)
Есть класс ApplicationManager он управляет запуском.
Сам драйвер создается так в конструтор класса WebDriverHelper мы передаем инстанс ApplicationManager с выбраными пропертями для запуска (там ест ьпару обреток но не обращайте на них внимания, я пробывал и бзз них тот же результат):
public class WebDriverHelper implements BaseDataProvider {
private static WebDriver driver;
private StringBuffer verificationErrors = new StringBuffer();
private final ApplicationManager manager;
/**Init WebDriver*/
public WebDriverHelper(ApplicationManager manager) {
Распространенная ошибка. TestNG запускает тесты в параллельных потоках. Из определения статической переменной можно узнать то, что это переменные класса, а не его инстанса. Т.е. вы пытаетесь распараллелить то, что существует в единственном экземпляре. По факту картина вырисовывается следующая: вы запускаете 2 теста в параллельном режиме; оба создают инстанс драйвера, в этот же момент открывается 2 браузера; но исходя из статичности драйвера, он будет всегда хранить настройки последнего созданного экземпляра, направляя команды соответствующему браузеру. Избавьтесь от статики и будет вам счастье.
Значит не везде избавились от статики. Покажите геттеры для хелпера и драйвера. А еще интересует процедура создания инстанса драйвера. Вы ведь в пейдж обджекты передаете уже созданный инстанс. В общем, нужно также увидеть код, связывающий пейдж обджекты с драйвером.
Я бы Вам посоветовал плюнуть пока на параллельный запуск, и заняться рефакторингом пока не поздно: у вас такой спаггети-код, мама не горюй, думаю и 0.5 будет маловато, что бы разобраться :)