Запуск теста LeanFT параллельно с использованием testng xml

Я пытаюсь запустить тесты LeanFT параллельно, используя TestNg XML в браузере Chrome.

Он работает нормально, но он открывает все тестовые сессии в одном и том же браузере, вызывая проблемы с файлами cookie для входа и выхода из системы.

Пример:

Я запускаю тест из TestNG XML с parallel="tests" thread-count="2" и запуск браузера в LeanFT с

public Browser getbrowser() {
  Browser browser = null;
  browser = BrowserFactory.launch(BrowserType.CHROME);
  browser.clearCache();
  return browser;
}

Поэтому каждый раз, когда я запускаю тест из TestNG XML параллельно, все тесты открываются в одном и том же браузере, что вызывает проблему с файлами cookie, как и у меня. browser.clearCache() в getbrowser() метод.

Я хочу запускать тесты LeanFT параллельно с каждым потоком, открывающим новый экземпляр окна Chrome и работающим параллельно на одной и той же машине.

Пожалуйста, поделитесь, если кто-нибудь реализовал параллельное выполнение для LeanFT на той же машине.

1 ответ

Когда вы используете BrowserFactory.launchза кулисами это похоже на бег

chrome about:blank

из командной строки. Вы можете попробовать выполнить это в командной строке / терминале, и вы увидите, что в первый раз откроется новое окно, но во 2-й, 3-й и т. Д. Это будет означать новую вкладку в открывшемся окне.

Это специфическое поведение браузера. Конечно же, Firefox отличается от командной строки и, что неудивительно, .launch также открывает новое окно на Firefox от постного.

Чтобы открыть новое окно в Chrome, --new-window Переключатель необходим. LeanFT не готов к этому (пока), вам придется запускать команду самостоятельно.

chrome --new-window www.google.com

Я уверен, что вы знаете, как запустить процесс из Java, но, для полноты моего ответа, вот как запустить процесс из Java. По существу:

Process myProcess = Runtime.getRuntime().exec(command);

А потом использовать BrowserFactory.attach, прикрепить к открытому окну.

Если вам нужно запустить несколько экземпляров, вам нужно будет однозначно идентифицировать их. Попробуйте открывать новые окна каждый раз, увеличивая переменную, например: https://www.google.com/search?q=dummy1

Так:

  1. Окно 1

    Процесс для запуска: chrome --new-window https://www.google.com/search?q=dummy1

    Описание к использованию:

    BrowserFactory.attach(new BrowserDescription.Builder().title("dummy1 - Google Search").build());
    
  2. Окно 2

    Процесс для запуска: chrome --new-window https://www.google.com/search?q=dummy2

    Описание к использованию:

    BrowserFactory.attach(new BrowserDescription.Builder().title("dummy2 - Google Search").build());
    
  3. и т.п.

Другие вопросы по тегам